我有一个场景,我有库说例如: SomeLibrary.dll 引用 System.Net.Http 和 System.Net.Http。格式化只是一个复制本地标志true
的示例,该程序集实际上正在消耗这两个dll的某些类型。
然后我创建了一个新项目,并且我使用复制本地标志true
添加对 SomeLibrary.dll 的引用,当使用此dll的内部使用上述2个库的方法时,运行时错误说:
无法加载文件或程序集'System.Net.Http.Formatting,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。
我所期待的是它应该具有SomeLibrary.dll所依赖的依赖程序集也应该在复制的bin文件夹中,这是不会发生的。
我在这里错过了什么吗?
为了您的信息,我能够通过向这两个dll单独添加引用来使其工作但是想知道为什么我需要单独添加如果我参考 SomeLibrary.dll 这取决于那些2个dlls。
答案 0 :(得分:0)
我只是有一个非常相似的声音问题,我根据程序集B有程序集A,而B依赖于System.Net.Http.Formatting.dll。出于某种原因,在我的构建服务器上,它没有复制System.Net.Http.Formatting.dll,因此在它创建的最终包中缺少它(尽管在我的情况下,它不是在任何一个项目中都没有'导出目录)。它在我的开发机器上本地工作正常,我验证了构建服务器上存在的程序集与我的机器(C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
)上存在的程序集。
我使用this answer解决了相关问题,即切换到使用Microsoft.AspNet.WebApi.Client NuGet包来显式提取该程序集。不幸的是,我仍然不确定问题是什么。