2017-05-08 4 views
0

Ich habe ein neues ASP.NET-Core-Projekt erstellt, das auf das .NET Framework 4.0 abzielt. Im Wesentlichen möchte ich eine ASP.NET Core-Webanwendung mit dem neuen .csproj-Format und der neuen dotnet-Toolbox erstellen, aber immer noch auf das gesamte Framework abzielen, da wir viele Abhängigkeiten haben, die nicht so schnell nach .NET Core portiert werden können.Referenz-DLL aus dem NuGet-Ordner im ASP.NET Core-Projekt auf dem vollständigen .NET-Framework

Es gibt einige NuGet-Pakete, die viele DLLs enthalten, aber nach dem Hinzufügen einer PackageReference wird nur eine DLL in den bin-Ordner der Webanwendung kopiert. Andere DLLs, die ich manuell referenzieren muss.

Zum Beispiel:

<ItemGroup> <Reference Include="CustomDll"> <HintPath>..\packages\CustomPackage\version\lib\CustomDll.dll</HintPath> </Reference> </ItemGroup>

Das Problem ist jetzt, dass mit dem neuen Werkzeug und NuGet Versionen gibt es keine Pakete Ordner unter dem Lösungspfad ist. Es befindet sich normalerweise in meinem Benutzerordner unter .nuget\packages\....

Gibt es ein Makro, das ich mit dem neuen MSBuild verwenden kann, um auf den globalen nuget-Ordner oder eine Einstellung, die ich ändern kann, um alle NuGet-Pakete im Lösungsverzeichnis zu kopieren?

Antwort

0

Es sieht so aus, als wäre die DLL im NuGet-Paket direkt in den Ordner lib platziert und nicht lib\net45, was in diesem Fall die automatische Werkzeugausstattung ermöglichen würde. (Das NuGet-Paket wurde wahrscheinlich manuell zusammengestellt).

Als Workaround können Sie HintPath auf $(NuGetPackageRoot)the.package.name\1.0.0\lib\the.dll setzen.

+0

Scheint so, dass in der neuesten .NET Core SDK $ (NuGetPackageFolders) gelöscht wurde, aber $ (NuGetPackageRoot) funktioniert stattdessen! – dustinmoris

+1

Aktualisiert. Es sollte die ganze Zeit "NuGetPackageRoot" gewesen sein –

Verwandte Themen