我的web项目引用了引用引用Microsoft.AspNet.WebApi.Client
程序集的Newtonsoft.Json
的projectB。它没有在其他地方引用。问题是我的部署服务器Newtonsoft.Json
一旦运行就没有复制到bin
目录
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe .\src\path.to.Web.projectA.csproj /t:Rebuild /p:Configuration=Release
它最终打破了这个例外:
FileNotFoundException:无法加载文件或程序集 'Newtonsoft.Json,Version = 7.0.0.0,Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项。该 系统找不到指定的文件。
我通过向projectB添加存根代码来解决它:
string json = JsonConvert.SerializeObject(new Something());
有人可以描述为什么以前没有复制过吗?
请注意。这些问题似乎没有回答问题或过时或我错过了什么?
答案 0 :(得分:2)
我在Alex的博文中发表了评论,
当间接依赖来自NuGet包(Microsoft.AspNet.WebApi.Client和Newtonsoft.Json)时,它对我不起作用。但http://www.paraesthesia.com/archive/2014/05/09/recursively-copying-indirect-project-dependencies-in-msbuild.aspx/中描述的提示解决了这个问题。我认为它使用了更合适的间接依赖检测方法。
如果您遵循该解决方案,则根本不需要使用存根。
关于dll未被复制的原因,它已被缩小到MSBuild问题(或更多,因为有太多报告相关),微软声称无法修复Connect,