2016-12-19 13 views
0

私はアセンブリについて勉強しており、検索後いくつかの点で混乱しています。私はここで質問しています。厳密に名前を付けられたアセンブリの場合、アセンブリの解決の順序は、最初にGACとルートディレクトリを確認してからプライベートプロービングすることです。
複数のプロジェクトがあるソリューションがあり、そこにはすべての参照アセンブリを配置するフォルダがあり、log4netと言うとプロジェクト内でlog4netアセンブリを使用する必要があります。アプリケーションソリューションディレクトリ内のフォルダを指すlog4net dllの参照を追加しますすべての参照されたdllが置かれた場所。なぜCLRがGACをチェックしてからルートディレクトリなどを調べるのか、なぜ言及を追加している間は言及されていないのでしょうか?.net-assembly resolution

答えて

1

「これを参照してください」と言うと、「ビジュアル・スタジオ」を意味すると思います。

このパスが存在しないマシンでプログラムを実行するとどうなりますか?

Btw。ビジュアルスタジオの「参照の追加」はコンパイル時にのみ使用されます。参照されたdllをターゲットフォルダにコピーします。

Visual Studioでは、プロジェクトフォルダにターゲットフォルダ(標準bin \ Debugまたはbin \ Release)が作成され、展開用のすべてのファイル(exe、dll、config)が保存されます。

DLLをGACにインストールするには、手動で行う必要があり、複数のアプリケーションで使用されているDLLであり、慎重に使用する必要がある場合にのみ意味があります。

アプリケーションがGACからdllをロードするときに、奇妙で困難なエラーが発生する可能性があります。このdllには、アプリケーションが期待する別のバージョンがあります。

+0

アプリケーションソリューションのフォルダに配置されている参照されているすべてのDLLがGACにインストールされているようですか?アプリケーションソリューションの一部であるフォルダーと、すべてのdll intはデプロイメントの一部ではありませんか? –

関連する問題