我有一个.NET DLL(DLLA),被应用程序1引用(本地复制)。因此,当我构建应用程序1时,DLLA被放置在应用程序1的BIN文件夹中。DLLA引用了DLLB,但DLLB很少被使用。
我曾经注意到DLLB被放置在应用程序1的BIN文件夹中,但现在不再这样了。我不明白这是什么原因?应用程序1如何决定是否将DLLB放入其BIN文件夹中?
当您编译应用程序时,编译器会查找您的引用及其使用情况。如果您没有使用任何类、静态方法或者来自某个引用的其他内容,则该引用不是必需的,因此它将不会被包含。例如,如果您有项目A、B和C。如果C引用A,而A引用B,则只有在您使用了B时才会得到B.dll
:
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());
}
}
}