我创建了一个类库,引用了两个不同的程序集,一个直接来自我的本地磁盘,另一个直接来自NuGet。
我的图书馆没有直接使用第二个程序集(NuGet的一个),但第一个程序集依赖于它。
当我构建我的库时,在bin
文件夹中我看到三个dll,一切看起来都是正确的。
现在:如果我从另一个类库中引用这个类库并构建最后一个类库,我就无法理解为什么NuGet包不会自动引用,而直接使用的dll是。
我试图用图表更清楚:
汇编LIB
- >取决于A.dll
(取自磁盘)和B.dll
(取自NuGet)
汇编Final
- >取决于程序集LIB
在最终bin
文件夹中,我看到:
但是我看不到B.dll
为什么?
编辑03/01/2015
我尝试通过创建B.dll中定义的类的实例,在我的LIB.dll中添加对B.dll的硬依赖。现在,当我编译Final.dll时,B.dll被带到bin文件夹。
所以看起来问题不在于本地dll与NuGet的dll之间的区别,而问题似乎在于我所说的"弱依赖&#34 ; vs." hard-dependencies"。