不使用包还原,但仍"must install nuget package Microsoft.Bcl.Build"



我正在处理一个使用nuget但不使用包还原的项目。(顺便说一句,这是我无法控制的决定,所以任何涉及启用包恢复的答案都不是我能使用的。)

解决方案中的少数项目(总共34个项目中的4个;一个WinJS应用商店项目、两个普通.NET类库和我的一个Azure云项目)报告了这个臭名昭著的警告:

...packagesMicrosoft.Bcl.Build.1.0.13toolsMicrosoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.

这个链接假设我想打开包恢复。到目前为止,我在这个主题上找到的其他建议也是如此。

顺便说一句,我试着在选项->程序包管理器->常规设置中禁用程序包还原。这并没有帮助(即使是这样,也是不可取的——我在其他工作中都使用包恢复)。

我真的不明白为什么我在一个不使用包恢复的解决方案中得到这个。据我所知,它所要求的软件包的全部目的是支持软件包恢复。因此,在不使用包恢复的解决方案中,出现此包似乎很奇怪。

然而,某些其他nuget包似乎会导致您依赖此功能。我有一个使用Microsoft.Bcl的Windows运行时组件项目,由于某种原因,这个nuget包依赖于Microsoft.Bcl.Build。(当我创建项目时,Visual Studio似乎为我添加了Microsoft.Bcl包。这可能是必要的。)其他项目似乎通过HTTP客户端库获得了对Microsoft.Bcl.Build的依赖。

因此,很明显,无论您是否使用包还原,某些常见的nuget包似乎都会强制依赖Microsoft.Bcl.Build

如果您只需将相关包添加到所有收到此警告的项目中,就可以消除此警告。但令人烦恼的是,即使我将Microsoft.Bcl.Build包添加到消费组件(例如,我的WinJS Window Store应用程序)中,我仍然会收到这个警告!(所以它继续抱怨我需要安装nuget包,即使在我安装了它之后。)

有人知道在这种情况下如何消除这个警告吗?做它要求我做的事似乎还不够。缺少什么?

我遇到了同样的问题。将Microsoft.Bcl.Build包从1.0.13更新到1.0.14解决了我的问题。

我们最近遇到了同样的问题。使用Nuget 2.8、BCL构建1.0.14、BCL 1.1.9,我们有一个使用BCL构建的项目a,该项目被另一个项目B引用。

短篇小说:尽管已将包添加到项目B编译中,但项目B编译出现了上述错误。解决方案是删除包并重新添加。我们最终为项目A和项目B都这样做了。

我认为问题的原因是版本不匹配。最初的项目引用了BCL 1.1.8(创建时的最新版本),而项目B自动使用了更新的BCL 1.1.9。

我不确定这是否相关,但第一次我们使用项目->NuGet包管理器添加包,第二次我们使用NuGet控制台(工具->NuGet->控制台)。

remove,add在项目B的csproj中引起了明显的差异。添加了以下行:

<Import Project="......packagesMicrosoft.Bcl.Build.1.0.14toolsMicrosoft.Bcl.Build.targets" Condition="Exists('......packagesMicrosoft.Bcl.Build.1.0.14toolsMicrosoft.Bcl.Build.targets')" />

相关内容

最新更新