2016-03-22 133 views
2

我創建了空的WebAPI項目並將項目簽入TFS。我上生成以下錯誤:TFS msbuild Nuget包缺失

Error : 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 ..\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內部的部分內容導致TFS構建失敗。

回答

1

Microsoft.Net.Compilers包和NuGet添加了這些Props導入。

軟件包(從1.1.1開始)包含一組MSBuild屬性,開發人員建議您的項目必須確保它可以按照他們的方式進行編譯。

爲了確保在構建項目時將這些屬性導入到MSBuild中,將在安裝包期間編輯csproj文件,以包含它們存在的檢查或引發錯誤。

如果您在「錯誤」條件下查看路徑,那麼您在編譯期間沒有恢復NuGet程序包時,通常會看到該錯誤:Microsoft.Net.Compilers.1.0.0文件夾?

有時候,當你升級一個軟件包(比如說1.1.1)並且導入保留在錯誤的路徑上時,會發生這種情況。

+0

文件夾也在那裏,並且.props文件也是如此。 –