缺少 TFS msbuild Nuget 包

Posted

技术标签:

【中文标题】缺少 TFS msbuild Nuget 包【英文标题】:TFS msbuild Nuget packages are missing 【发布时间】:2016-03-22 17:53:13 【问题描述】:

我创建了空的 WebAPI 项目并将项目签入到 TFS。我在构建时遇到以下错误:

错误:此项目引用的 NuGet 包在 这台电脑。使用 NuGet 包还原下载它们。更多 信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。这 丢失的文件是 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props.

然后我从 .csproj 文件中删除了以下块,如先前主题中关于相同错误的建议:

  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is 0.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

从 .csproj TFS 构建中删除此 xml 部分后,构建成功。我想了解为什么 Visual Studio 2015 在 .csproj 中添加以下 Target 部分,这会导致 TFS 构建失败。

【问题讨论】:

【参考方案1】:

Microsoft.Net.Compilers 包和 NuGet 添加了这些 Props 导入。

该包(从 1.1.1 开始)包含一组 MSBuild 属性,开发人员建议您的项目必须确保它可以按照他们想要的方式编译。

为确保在构建项目时将这些属性导入 MSBuild,在包安装期间编辑 csproj 文件以检查它们是否存在,或引发错误。

通常当您在构建过程中没有恢复 NuGet 包时会看到错误,如果您查看“错误”条件下的路径,Microsoft.Net.Compilers.1.0.0 文件夹在那里吗?

当您升级软件包(比如升级到 1.1.1)并且导入路径错误时,有时会发生这种情况。

【讨论】:

文件夹在那里,.props 文件也在那里。

以上是关于缺少 TFS msbuild Nuget 包的主要内容,如果未能解决你的问题,请参考以下文章

MSBUILD:错误MSB1009:项目文件不存在

TFS MSBuild 不为解决方案中的网站恢复 nugets

UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包

这个字符串中的非法字符是啥?我收到 MSBUILD :错误 MSB3095

UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包

Jenkins结合.net平台工具之Nuget