wake-up-neo.com

Erstellungsfehler, Dieses Projekt verweist auf NuGet

Wenn ich versuche, meine Lösung zu erstellen, erhalte ich folgende Fehlermeldung:

Schweregradcode Beschreibung Status der Unterdrückung der Projektdateizeile Fehler Dieses Projekt verweist auf NuGet-Pakete, die auf .__ fehlen. dieser Computer. Laden Sie sie mit NuGet Package Restore herunter. Für mehr Informationen finden Sie unter http://go.Microsoft.com/fwlink/?LinkID=322105 . Das fehlende Datei ist ..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props. MusicKarma C:\Benutzer\Bryan\Documents\Visual Studio 2015\Projekte\MusicKarma\MusicKarma.csproj 268

Wenn ich in meinem Paketordner nachschaue, kann ich die Datei Microsoft.Net.Compilers.props finden

Ich habe versucht, Nuget Restore zu verwenden, aber es heißt immer wieder, dass ich alle Pakete habe. Wer kann mir helfen?

Dies passiert, wenn ich dieses Projekt von TFS auf einen meiner Computer bringe.

26
Bryan

Zuerst würde ich überprüfen, ob Ihr MusicKarma-Projekt Microsoft.Net.Compilers in der packages.config-Datei enthält. Wenn nicht, können Sie alles, was mit diesem NuGet-Paket zu tun hat, aus Ihrem MusicKarma.csproj entfernen.

Wenn Sie das Microsoft.Net.Compilers NuGet-Paket verwenden, ist der Pfad vermutlich falsch. Beim Betrachten des Verzeichnisnamens in der Fehlermeldung würde ich vermuten, dass sich die MusicKarma-Lösungsdatei (.sln) im selben Verzeichnis befindet wie die MusicKarma.csproj. Wenn ja, ist das Paketverzeichnis wahrscheinlich falsch, da sich das Paketverzeichnis standardmäßig im Lösungsverzeichnis befindet. Ich gehe also davon aus, dass Ihr Paketverzeichnis ist:

C:\Users\Bryan\Documents\Visual Studio 2015\Projects\MusicKarma\packages

Während Ihre MusicKarma.csproj-Datei nach der Requisiendatei sucht:

C:\Users\Bryan\Documents\Visual Studio 2015\Projects\packages\Microsoft.Net.Compilers.1.1.1\build

Wenn dies der Fall ist, können Sie das Problem beheben, indem Sie den Pfad in Ihrer MusicKarma.csproj-Datei bearbeiten oder das NuGet-Paket neu installieren.

21
Matt Ward

Dieses Problem trat für mich auf, als ich Ordner im Dateisystem (nicht in meiner Lösung) erstellt und einige Projekte verschoben habe.

Stellt sich heraus, dass die Paketpfade relativ zu den csproj-Dateien sind. Also musste ich den "HintPath" meiner Referenzen ändern:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
    <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
    <Private>True</Private>
</Reference>

Zu:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
    <HintPath>..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
    <Private>True</Private>
</Reference>

Beachten Sie das doppelte ".. \" in 'HintPath'.

Ich musste auch meine Fehlerbedingungen ändern, zum Beispiel musste ich ändern:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />

Zu:

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />

Beachten Sie wieder das doppelte ".. \".

26
Kevin Candlert

Ich hatte auch diesen Fehler .__ Ich nahm diesen Teil des Codes aus der .csproj-Datei:

 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
      <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable 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('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
    </Target>
4
Joana Brandão

Eine schnelle Lösung, die für mich und andere wie ein Zauber funktioniert hat:

Wenn Sie VS 2015+ verwenden, entfernen Sie einfach die folgenden Zeilen aus der .csproj-Datei Ihres Projekts:

  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable 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('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

In VS 2015+ Solution Explorer:

  1. Klicken Sie mit der rechten Maustaste auf Projektname -> Projekt entladen
  2. Klicken Sie mit der rechten Maustaste auf Projektname -> .csproj bearbeiten 
  3. Entfernen Sie die oben angegebenen Zeilen aus der Datei und speichern Sie sie
  4. Klicken Sie mit der rechten Maustaste auf Projektname -> Projekt neu laden
4

Es ist ein bisschen alt, aber ich bin kürzlich auf dieses Problem gestoßen. Alles, was ich tat, war, alle nuget-Pakete aus dem Paketordner zu löschen und wiederherzustellen. Ich konnte die Lösung erfolgreich erstellen.

0
Ravimaran

Warum benötigen Sie Manipulationen mit packages.config- oder .csproj-Dateien?
Der Fehler besagt explizit: Verwenden Sie NuGet Package Restore, um sie herunterzuladen.
Verwenden Sie diese Anweisung entsprechend: https://docs.Microsoft.com/de-de/nuget/consume-packages/package-restore-tr Troubleshooting

Schnelle Lösung für Visual Studio-Benutzer
1.Wählen Sie den Menübefehl Extras> NuGet Package Manager> Package Manager-Einstellungen.
2.Stellen Sie beide Optionen unter Package Restore ein.
3.Wählen Sie OK.
4.Bauen Sie Ihr Projekt erneut auf.

0
andreyfromnn