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.
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.
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 ".. \".
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>
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:
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.
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.