我正在开发一个使用 nuget 但不使用包还原的项目。(顺便说一句,这是我无法控制的决定,因此任何涉及启用包还原的答案都不是我能够使用的答案。)
解决方案中的少数项目(总共 34 个项目中的 4 个;一个 WinJS 应用商店项目、两个普通 .NET 类库和我的一个 Azure 云项目)报告了这个臭名昭著的警告:
...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.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
nuget 包的 Windows 运行时组件项目,由于某种原因,它依赖于Microsoft.Bcl.Build
. (当我创建项目时,Visual Studio 似乎为我添加了包。大概是必要的。)其他项目似乎通过 HTTP 客户端库Microsoft.Bcl
获得了依赖。Microsoft.Bcl.Build
显然,某些常见的 nuget 包似乎会强制依赖Microsoft.Bcl.Build
您是否使用包还原。
如果您可以通过将相关包添加到所有收到此警告的项目中来消除警告,那将很好。但令人烦恼的是,即使我将Microsoft.Bcl.Build
包添加到消费组件(例如,我的 WinJS Window Store 应用程序),我仍然会收到此警告!(所以它继续抱怨我需要安装 nuget 包,即使我已经安装了它。)
有谁知道在这种情况下如何消除这个警告?做它要求我做的事情似乎还不够。少了什么东西?