Fehlermeldung zu fehlender .NET-Assembly in ASP.NET Core 5

Fehlerbeschreibung

Bei einer Anwendung mit ASP.NET Core 5 habe ich folgende Fehlermeldung im Browser erhalten:

HTTP Error 500.31 - Failed to load ASP.NET Core runtime

Common solutions to this issue:

The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.

Im Stdout-Protokoll auf dem Server stand:

Error:
An assembly specified in the application dependencies manifest (MyWebsite.deps.json) was not found:
package: ‚Microsoft.Data.SqlClient‘, version: ‚2.1.1‘
path: ‚runtimes/win/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll‘

Ich habe gesucht und gesucht, und die DLL „Microsoft.Data.SqlClient.dll“ war korrekt vorhanden.

Ursache

Nach längerem Suchen ist mir aufgefallen, dass der „runtimes“-Ordner auf dem Server gefehlt hat, und damit auch die Datei „Microsoft.Data.SqlClient.SNI.dll“ im Unterordner (z. B. „runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll“).

Die Fehlemeldung sagt also, dass eine Abhängigkeit der DLL gefehlt hat, nicht die DLL selbst.

Lösung

Nachdem ich den „runtimes“-Ordner samt Unterordnern korrekt publiziert hatte, lief auch die Anwendung wieder sauber durch.