ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

Visual Studio 感動的!

感動です!
Visual Studioには感動です!

…とか言いつつ普通の機能かと思ったり。


あのですね、
プロジェクトを作ったら、System.XmlとかSystem.Dataとか使わないのに参照設定されているライブラリあるじゃないですか。

無駄だなと思っても、実は使っていましたなんてことがあるかも知れませんから、消すことも難しいのです。

そこで、消したらエラーになるかどうか確認しようと、一度全て参照を消してみたんですよ。


…そしたらコンパイルが通った!!

おかしな話ですよ。
何か裏があると思って逆コンパイラツールで、参照一覧を見てみたら、

消したはずのmscorlib.dllが参照されていた!

分かりにくい…。


もう一つの実験として、参照設定にSystem.Xmlなどのライブラリを残したままにしてビルド→逆コンパイラツールで確認をしてみました。

mscorlib.dllしか参照されていない!

これは分かりにくいですけど良い機能だと思います。
無駄な参照を気にする必要はありませんでした。


ちなみに、“拡張”タブのライブラリを参照しても、使わないと切り捨てられたので、使わないやつは全て切り捨てられるようです。


mscorlib.dllを自動で参照に追加する件については、
もちろんSystem.Windows.Formsを参照せずにMessageBox.Showなんて書けないわけですし、参照の追加もしてくれません。

ただ、mscorlib.dllだけは、参照設定していなくても参照するようですね。


VS2012から「mscorlib.dllを参照しない」のチェックボックスが無くなって、参照一覧から設定するようになったみたいですが、
なら、自動で参照追加するのはだめじゃないか…。


まぁ多分、「mscorlib.dllの代替物を参照したりして、
mscorlib.dllを参照せずともコンパイルできる状態になったらmscorlib.dllを自動で参照しなくなる。」

みたいに上手いことやっているんじゃないでしょうかね。

分かりにくいから止めてほしいですが…。


「感動」って言ったり「分かりにくい」って言ったりで、よく分かりませんね(笑)

まぁ、Visual Studioには謎がいっぱいってことですよ。

tag:

コメント

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/285-4115a09f
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。