缺少TFS msbuild Nuget包

时间:2016-03-22 17:53:13

标签: visual-studio tfs msbuild

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

  

错误:此项目引用了缺少的NuGet包   这台电脑。使用NuGet Package Restore下载它们。更多   信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。该   遗失的文件是   .. \包\ Microsoft.Net.Compilers.1.0.0 \建立\ 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中删除此xml部件后,TFS构建成功构建。我想了解为什么Visual Studio 2015在.csproj中添加目标部分会导致TFS构建失败。

1 个答案:

答案 0 :(得分:1)

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

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

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

通常在构建期间没有恢复NuGet包时会看到错误,如果查看“错误”条件中的路径,那么Microsoft.Net.Compilers.1.0.0文件夹是否存在?

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