引用子项目的所有项目都必须安装NuGet软件包Microsoft.Bcl.Build(C#/ Windows Phone 7)?

我在Visual Studio 2012中涉及到具有多个项目的C#解决方案的特别困难的重构会话。我需要将一堆代码放入自己的程序集中,以便可以在多个项目中共享代码,所有这些都在同一个解决方案中。然而,无论我尝试什么,我都会收到引用新共享项目的项目的警告:“所有项目引用{共享项目名称}必须安装nuget软件包Microsoft.Bcl.Build”。

我已经通过依赖项目和共享项目与细齿梳,详细验证他们都使用相同的版本和完全相同的DLL为Microsoft.Bcl版本1.0.1.19和Microsoft.Bcl.Async版本1.0。 16包:

> System.Runtime
> System.Threading.Tasks
> Microsoft.Threading.Task
> Microsoft.Threading.Tasks.Extensions
> Microsoft.Threading.Tasks.Extensions.Phone

DLL路径都被解析和相同。 XAP文件确实构建,但我仍然得到这个警告告诉我,在依赖项目中没有引用Microsoft.Bcl.Build,尽管事实上我可以看到它是。

如果我尝试卸载,然后重新安装这两个包使用NuGet为涉及的每个项目,我得到的引用与空路径和5个DLL引用涉及的警告图标。由于某些原因,NuGet添加了引用,但找不到DLL。此外,如果我这样做,我经常发现自己的问题是在尝试添加引用时遇到“无法添加引用”错误的项目。然后我关闭并重新打开解决方案,导致“项目无法加载”错误。所以我必须手动编辑项目文件,删除错误的包导入语句,并重新加载项目。

如何解决这个问题,以及避免将来头痛的一般技巧是什么?让NuGet管理丢失的软件包没有帮助。

如果有人遇到这个和@ Swell的解决方案让你去“wtf”:

我最近经历了一个较旧的MVC项目,并更新了(更新的剃刀,asp,http等)nuget包)。该项目独立自主,建成良好,但是当我发布时,OP的错误失败了。

原来是因为我没有更新与它相关的* .Tests项目(应该已经弄清楚,虽然不知道为什么测试与项目密切相关)。所以,要修复:

>右键单击解决方案并管理nuget软件包。
>浏览所有在Web项目中更新的软件包,并将它们应用于其他项目(每个“更新”将显示一个包含适用项目的树,我只需点击一下就可以了)。
>重建。

你现在应该是好的,不应该吠叫你。希望能帮助别人。

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...