2016-03-22 12 views
2

Ich habe ein leeres WebAPI-Projekt erstellt und das Projekt in TFS eingecheckt. Ich habe folgende Fehler auf Build:TFS msbuild Nuget-Pakete fehlen

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.

ich dann aus CSPROJ Datei folgenden Block entfernt, wie in den vorangegangenen Themen zu gleichen Fehler geraten:

<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> 

Nachdem ich diesen xml Teil entfernen CSPROJ TFS bauen baut erfolgreich auf. Ich möchte verstehen, warum Visual Studio 2015 folgenden Target Teil innerhalb von .csproj, die TFS-Build-Fehler macht.

Antwort

1

Das Microsoft.Net.Compilers-Paket und NuGet haben diese Props-Importe hinzugefügt.

Das Paket (ab 1.1.1) enthält eine Reihe von MSBuild-Eigenschaften, die von den Entwicklern vorgeschlagen werden, damit sichergestellt ist, dass sie so kompiliert werden können, wie sie es wollten.

Um sicherzustellen, dass diese Eigenschaften in MSBuild importiert werden, wenn Ihr Projekt erstellt wird, wird die csproj-Datei während der Paketinstallation bearbeitet, um eine Überprüfung einzubeziehen, ob sie vorhanden ist oder einen Fehler verursacht.

Normalerweise sehen Sie den Fehler, wenn Sie nicht das NuGet-Paket während der Erstellung wiederhergestellt haben, wenn Sie den Pfad in der "Fehler" -Bedingung betrachten, ist der Microsoft.Net.Compilers.1.0.0 Ordner dort?

Manchmal kann dies passieren, wenn Sie ein Paket aktualisieren (sagen wir zu 1.1.1) und der Import wird auf den falschen Pfad verlassen.

+0

Ordner ist dort und .props-Datei als auch. –