使用VS2017,项目A使用NHibernate,并具有对Iesi.Collections.dll的NuGet引用(由NHibernate使用)。项目B引用了项目A,而B没有明确引用它,则Iesi.Collections.dll仍显示在项目B的bin \ debug文件夹中。项目B现在被项目C引用,但是Iesi.Collections.dll不会出现在其bin \ debug文件夹中,并且在编译时会出现运行时错误。
我尝试将对项目A中Iesi.Collections.dll的引用上的“复制本地”字段显式更改为False,然后返回True,并验证它是否在csproj文件中添加了True元素,但这并没有帮助
我还尝试使用NuGet删除并重新添加Project A中的引用,但这也无济于事。
我希望Project C的bin \ debug输出文件夹中包含Iesi.Collections.dll程序集,因为这是Project A的依赖项,而Project C不需要知道要引用哪些程序集才能让A进行引用。工作(关注点分离)。
答案 0 :(得分:0)
根据其他问题的建议,我在Iesi.Collections.dll程序集中声明了一个类型的实例,而没有在Project A的类中实例化该实例,以最大程度地减少内存使用,并且dll现在出现在Project C的编译输出中。虽然它解决了问题,但我不喜欢Project A的这种解决方案,从技术上讲,它需要Iesi.Collections.dll的内部工作知识。