2017-07-28 4 views
7

Ich entwickelte eine Anwendung in asp.net-core 2.0 preview1. Ich entwickelte auf Windows mit Visual Studio 2017.Eine im Anwendungsabhängigkeiten-Manifest angegebene Assembly wurde nicht gefunden:

Jetzt möchte ich es auf Linux-Server mit Docker bereitstellen.

I erstellt Docker-Datei:

FROM microsoft/aspnetcore:2.0 
ARG source 
WORKDIR /app 
EXPOSE 44305 
COPY ${source:-obj/Docker/publish} . 
ENTRYPOINT ["dotnet", "Aplication.dll"] 

Nach dass die Ausführung von Befehlen:

dotnet build -o obj/Docker/publish -c Release 
dotnet publish -o obj/Docker/publish -c Release 
docker build -t testapi-api . 
docker run -p 44305:80 --name api testapi-api 

Afer dem letzten Befehl run ich nächste Störung erhalte:

An assembly specified in the application dependencies manifest (Aplication.deps.json) was not found: 
    package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.0-preview1-final' 
    path: 'lib/netcoreapp2.0/Microsoft.AspNetCore.Antiforgery.dll' 
    This assembly was expected to be in the local runtime store as the application was published using the following target manifest files: 
    manifest.win7-x64.xml;manifest.win7-x86.xml;manifest.osx-x64.xml;manifest.linux-x64.xml 

Ich bin mit asp.net-core und vor allem mit Docker. Also jede Hilfe dabei ist großartig.

+0

Haben Sie dotnet restore versucht? – TGarrett

+0

ja ich habe es versucht, aber immer noch den gleichen Fehler – carpics

Antwort

2

Versuchen Sie, dieses Bild "2.0.0-preview1" zu verwenden. Grundsätzlich ändern Sie die erste Zeile in FROM microsoft/aspnetcore: 2.0.0-preview1, wenn Ihr lokaler preview 1 dotnet core hat.

Wenn es nicht funktioniert, überprüfen Sie Ihre lokale dotnet Core-Version, es zeigt auf 2.0.0-preview2-final, dann ändern Sie alle Ihre Referenzen auf 2.0.0-preview2-final in csproj-Datei, dann verwenden Sie die 2.0 .0-Vorschau2 Bild. Es würde dir helfen, hoffe ich.

4

Sie benötigen -r Linux-x64 Parameter in Dotnet angeben Befehl wie das veröffentlichen:

dotnet publish -o obj/Docker/publish -c Release -r linux-x64 

Dies wird einen Standalone-Einsatz machen.

Verwandte Themen