首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >警告:所有引用MyProject.csproj的项目都必须安装nuget包Microsoft.Bcl.Build

警告:所有引用MyProject.csproj的项目都必须安装nuget包Microsoft.Bcl.Build
EN

Stack Overflow用户
提问于 2013-06-19 06:45:42
回答 5查看 33.7K关注 0票数 95

我有一个在VS2012中开发的ASP.NET MVC4应用程序。该应用程序由一个主项目(MyProject)、一个单元测试项目(MyProject.Tests)、一个Azure部署项目(MyProject.Azure)和几个通用库项目组成。

当我右键单击解决方案或主项目并选择Manage NuGet Packages时,我看到了一堆微软更新,这些更新显然是在过去一个月左右的时间里变得可用的。如果我单击Update All按钮,那么更新显然是安装的,没有任何明显的问题,但当我构建解决方案时,我收到了两次错误消息:

代码语言:javascript
复制
warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build

好的,我有两个引用MyProject的项目: MyProject.Tests和MyProject.Azure。我可以右键单击MyProject.Tests,选择ManageNuGet Packages,然后添加Microsoft.Bcl.Build。这消除了两个警告中的一个。但是VS没有给我一个选项来管理MyProject.Azure项目的NuGet包。

如何将Microsoft.Bcl.Build包添加到Azure部署项目?

编辑:

多亏了用户swell,我现在知道微软连接的问题已经在here上解决了。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-06-22 02:54:15

如果双击该警告,则会给出禁用该警告的说明。

禁用来自还不支持Nuget的项目的项目引用是安全的。

请看下面从Microsoft.Bcl.Build.targets复制的粗体部分。

BclBuildValidateNugetPackageReferences

通过为引用设置SkipValidatePackageReferences=true,可以为项目引用禁用此目标:

代码语言:javascript
复制
<ProjectReference Include="..\pcl\pcl.csproj">
  <Project>{664a9e98-fac7-4567-a046-0dde95fddb48}</Project>
  <Name>pcl</Name>
  <Properties>SkipValidatePackageReferences=true</Properties>
</ProjectReference>
票数 57
EN

Stack Overflow用户

发布于 2013-09-20 03:34:43

TheESJ提供的答案是正确的,但我不清楚措辞。由于我不能对答案发表评论,我将在这里提供更多细节。具体地说,我在一个Azure项目中遇到了这个问题,为了消除这个警告,需要采取以下解决方法:

当您双击VisualStudio中的警告时,将转到Microsoft.BclBuild.targets文件中的BclBuildValidateNugetPackageReferences目标。在实际的目标元素之上,您应该会发现一个很大的注释块,其中谈到了禁用项目引用检查。由于Azure项目不能有任何库引用,因此这些Azure项目不可能满足此特定构建目标的要求。

解决方案是什么?禁用Azure项目的引用检查,因为不可能实际添加nuget包引用。

示例

因此,假设我们有两个项目:引用MyProject.csproj.的MyAzureProject.ccproj请按照以下步骤操作:

  1. 在解决方案资源管理器中右键单击"MyAzureProject“并选择”编辑项目文件“。
  2. 找到对”MyProject“的项目引用。它应该看起来像这样:

MyProject {1d99490e-d140-4897-9890-238e673a5864} ...

  • 在ProjectReference元素内添加以下元素:

SkipValidatePackageReferences=true

  • Your项目引用现在应该如下所示:

MyProject {1d99490e-d140-4897-9890-238e673a5864} ...SkipValidatePackageReferences=true

  • 在解决方案资源管理器中右键单击"MyAzureProject“,然后选择”重新加载项目“。

您现在应该能够重新构建,并且错误应该会消失。

票数 65
EN

Stack Overflow用户

发布于 2013-08-15 00:22:34

我遇到了同样的问题,并试图更新Microsoft.Bcl.Build.targets;但这并没有帮助。

经过一些调查发现,Azure服务项目的.csproj文件必须修改为包含<Properties>SkipValidatePackageReferences=true</Properties>

从@TheESJ的答案中看不出这一点,因此决定单独发布答案。感谢@TheESJ。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17180268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档