fehlender Laufzeitspeicherfehler unter Linux mit nur .NET Core 2.0-Laufzeit

8

Ich aktualisiere einige Anwendungen von .NET Core 1.1 bis 2.0. Die Apps funktionieren lokal gut, aber nachdem ich die Runtime auf meiner Linux-VM aktualisiert und implementiert habe, bekomme ich Fehler:

  

Eine Assembly, die im Manifest der Anwendungsabhängigkeiten angegeben ist   (foo.deps.json) wurde nicht gefunden:       Paket: 'Microsoft.ApplicationInsights.AspNetCore', Version: '2.1.1'       Pfad: 'lib / netstandard1.6 / Microsoft.ApplicationInsights.AspNetCore.dll'
  Es wurde erwartet, dass sich diese Assembly im lokalen Laufzeitspeicher befindet   Die Anwendung wurde unter Verwendung der folgenden Zielmanifestdateien veröffentlicht:       aspnetcore-store-2.0.0-linux-x64.xml; aspnetcore-store-2.0.0-osx-x64.xml; aspnetcore-store-2.0.0-win7-x64.xml; aspnetcore-store-2.0.0- win7-x86.xml

Ich denke, das liegt daran, dass der Runtime-Download nicht den neuen Ordner für den Laufzeitspeicher generiert, der bei der Verwendung des Microsoft.AspNetCore.All-Pakets benötigt wird.

Ich kann stattdessen das gesamte SDK installieren und das funktioniert gut, aber ich würde es vorziehen, weiterhin nur die Laufzeit zu verwenden.

Wie erstelle ich den Laufzeitcache manuell, ohne das SDK auf dem Produktionsserver zu benötigen?

    
Paul Hiles 16.08.2017, 17:48
quelle

4 Antworten

5

Update 12/4/2017

Die ASP.NET Core-Laufzeitumgebung ist jetzt auf der Hauptdownloadseite von .NET Core aufgeführt. Ссылка

Update 10/3/2017

Sie können auch über einen Paket-Feed installieren.

Unter diesem Link finden Sie Anweisungen zum Hinzufügen der .NET Core-Paket-Feeds für apt, yum, zypper und andere: Ссылка

Wenn Sie beispielsweise auf Ubuntu 16 installieren möchten, tun Sie dies:

%Vor%

Ursprüngliche Antwort

Sie können nur den ASP.NET Core-Laufzeitspeicher von hier herunterladen:

Ссылка

Sie müssen auch die .NET Core 2.0.0-Laufzeitumgebung herunterladen (siehe Ссылка ).

Entpacken Sie beide Dateien in den gleichen Ordner, d. h. der Ordner "store" und "additionalDeps" aus dem Archiv des Laufzeitspeichers sollte parallel zur ausführbaren Datei von dotnet sein.

    
natemcmaster 18.08.2017, 06:48
quelle
1

In der Dokumentation zum Laufzeitpaketspeicher können Sie Folgendes hinzufügen Ihre .csproj -Datei:

%Vor%

und die Abhängigkeiten werden einbezogen, wenn Sie dotnet publish verwenden.

    
Chris Howden 03.10.2017 20:52
quelle
0

Für CentOS 7 funktionierte folgendes für mich:

  1. Downloaden und installieren Sie die Laufzeit:

    mkdir -p / home / dotnet & amp; & amp; tar zxf dotnet-runtime-2.0.0-linux-x64.tar.gz -C / home / dotnet

  2. Laden Sie das SDK herunter und installieren Sie es. Dies ist ein Muss, um den Asp.Net Core Store-Ordner zu erhalten

    mkdir -p / home / dotnetSDK & amp; & amp; tar zxf dotnet-sdk-2.0.0-linux-x64.tar.gz -C / home / dotnetSDK

  3. Kopieren Sie den Geschäftsordner vom SDK in die Laufzeitumgebung:

    cp -rp / home / dotnetSDK / speicher / home / dotnet / store

  4. Entfernen Sie das SDK:

    rm -dfr / home / dotnetSDK

  5. setze 'dotnet' auf den PATH, wie in den offiziellen Dokumenten erklärt (unten ist nicht permanent):

    export PATH = $ PFAD: / home / dotnet

Jetzt können Sie es testen und bestätigen:

%Vor%

Endlich: Komprimieren / Archivieren / home / dotnet, damit Sie die Steps 2, 3 & amp; 4 in zukünftigen Bereitstellungen derselben Version 2.0.0 .

    
Jawad Al Shaikh 17.08.2017 17:02
quelle
0

Ich habe dieses Problem festgestellt, weil meine dotnet-SDK-Version hinter der Paketversion von Microsoft.AspNetCore.All stand. Die Kompatibilität der Versionen (entweder durch Zurücksetzen des Pakets oder durch Aktualisieren des Host-SDK) hat mein Problem behoben. Dummer Fehler zu machen, aber hoffentlich wird es jemandem helfen.

    
johnnyRose 19.12.2017 16:58
quelle