app1 (ローカルにコピー) によって参照される .NET DLL (DLLA) があります。したがって、app1 をビルドすると、DLLA は app1 の BIN フォルダーに配置されます。DLLA は、ほとんど使用されていない DLLB を参照します。
DLLB が app1 の BIN フォルダーに配置されていることに気付きましたが、これはもう発生しません。私が理解していない理由はありますか?app1 は、DLLB を BIN フォルダーに入れるかどうかをどのように決定しますか?
アプリケーションをコンパイルすると、コンパイラは参照と参照の使用法を探します。参照からのクラス、静的メソッド、またはその他のものを使用していない場合、それは必要ないため、含まれません。たとえば、プロジェクト A、B、および C があるとします。C が A を参照し、A が B を参照しているB.dll
場合、B をまったく使用しない限り、a は取得されません。
using B;
namespace A
{
public class Class1
{
}
}
前のコードでは、bin フォルダーに dll が含まれません。ただし、次のようになります。
using B;
namespace A
{
public class Class1
{
void c()
{
B.Class1 b = new B.Class1();
Console.Write(b.ToString());
}
}
}