2016-08-02 7 views
3

Ich habe ein C# -Projekt von jemand anderem erhalten. Ich habe das Projekt geöffnet und versucht, alle Nuget-Pakete zu installieren, indem ich eine Update-Package -reinstall tue.Visual Studio 2015 kann nuget-Paketverweise und DLLs nicht im Paketordner finden

Es heruntergeladen alle Pakete im Ordner packages.

/Projects 
    /WebApiTest (root folder) 
    WebApiTest.csproj 
    WebApiTest.sln 
    /packages (packages are loaded in this folder) 

Aber das gesamte Projekt sagt immer noch, dass es alle Referenzen fehlt. Ich editierte die csproj Datei, um zu sehen, woher es die Pakete zu laden versucht, und das ist:.

<ItemGroup> 
    <Reference Include="Antlr3.Runtime"> 
     <HintPath>packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath> 
    </Reference> 
    <Reference Include="EntityFramework"> 
     <HintPath>packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    <Reference Include="EntityFramework.SqlServer"> 
     <HintPath>packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    ... etc. 

Also gehe ich davon aus es beginnt im selben Verzeichnis wie die csproj Datei in ist im selben Verzeichnis auch ist Der packages Ordner, der alle DLL-Dateien enthält. Der Weg scheint also richtig zu sein.

Warum kann mein Projekt die Referenzen nicht laden?

+0

Erhalten Sie Fehlermeldungen in der Konsole des Paketmanagers oder im Ausgabefenster? Bevor Sie das Paket aktualisieren, reinigen und erstellen Sie die gesamte Lösung neu. Bitte überprüfen Sie, ob die neue Version installiert wurde oder die alte Version wirklich gelöscht wurde: http://stackoverflow.com/questions/20800507/nuget-package-update-issues –

+0

Können Sie die gesamten Fehlerprotokolle teilen? –

Antwort

0

Kann NuGet die Pakete erfolgreich über die Befehlszeile wiederherstellen?

nuget restore WebApiTest.sln 

Hinweis, müssen Sie möglicherweise die Ausführung von nuget vollständig qualifizieren:

Versuchen Sie diese von der Kommandozeile aus dem selben Ordner wie die Lösung ausgeführt wird (zB C: \ nuget \ nuget.exe) oder hast du es auf deinem Weg.

Möglicherweise müssen Sie die NuGet-Programmdatei herunterladen, falls Sie dies nicht bereits getan haben.

Wenn das nicht funktioniert, wird hoffentlich etwas Licht auf warum!

+0

Leider gibt mir das das selbe Problem – w00

1

Dieser Beitrag fängt an alt zu werden, aber da ich dieses Problem selbst festgestellt habe und es behoben habe, werde ich eine mögliche Lösung teilen.

Ich musste die Pakete manuell deinstallieren und neu installieren, indem ich mit der rechten Maustaste auf das problematische Projekt, NuGet-Pakete verwalten ..., dann von dort neu installieren/neu installieren.

Seien Sie vorsichtig bei der Paketversion: Achten Sie darauf, das gleiche zu nehmen, falls das Projekt nicht die neuesten verwendet.

Ein bemerkenswerter Effekt für mich nach dieser Prozedur ist, dass die Pfade in der csproj-Datei aktualisiert wurden.

Hoffe, es werde jemand helfen :)

0

in einem einfachen Texteditor, um die csproj Datei für Ihr Projekt öffnen und die Pfade für die DLL zu beheben. Sie können sehen, so etwas wie:

<HintPath>packages\etc\etc\etc...</HintPath> 

ich diese Vorkommnisse geändert:

<HintPath>..\packages\etc\etc\etc...</HintPath> 

schob ich diese Änderung von dem Computer, der das Projekt Geldbusse arbeitete und zog sie wieder auf die schlechte Maschine und Es war kein Problem mehr.

Hinweis: Dies ist kein Problem, wenn sich Ihre Projektdatei im selben Ordner wie Ihr Paketordner befindet.

0

Was die fehlenden Projektreferenzen für mich gerichtet war einfach:

  1. Schließen Visual Studio
  2. löschen „Pakete“ Ordner, in dem alle nuget Pakete gespeichert sind (wahrscheinlich bei Ihrer Lösung Ebene oder auch Projekt-Level-Verzeichnis)
  3. Öffnen Sie die Lösung wieder in Visual Studio
  4. Wenn Sie automatic package restore on haben, erstellen Sie einfach, sonst zunächst die nuget Pakete wiederherstellen (aus der Lösung Kontextmenü) und dann wieder aufzubauen.