Assemblybezogene Behavior Changes für Veröffentlichungsformat mit einzelner Datei

Mehrere auf den Speicherort der Assemblydatei bezogene APIs weisen Behavior Changes auf, wenn sie in einem Veröffentlichungsformat mit einzelner Datei aufgerufen werden.

Änderungsbeschreibung

Bei einer Veröffentlichung mit einzelner Datei für .NET 5 und höhere Versionen werden Assemblybundles aus dem Arbeitsspeicher geladen anstatt auf den Datenträger extrahiert zu werden. Für Apps, die als einzelne Datei veröffentlicht werden, bedeutet dies, dass bestimmte auf den Speicherort bezogene APIs verschiedene Werte für .NET 5 und höhere Versionen zurückgeben als ältere Versionen von .NET. Es gibt folgenden Änderungen:

API Vorgängerversionen .NET 5 und höher
Assembly.Location Gibt extrahierten DLL-Dateipfad zurück Gibt leere Zeichenfolge für Assemblybundles zurück
Assembly.CodeBase Gibt extrahierten DLL-Dateipfad zurück Löst eine Ausnahme für Assemblybundles aus
Assembly.GetFile(String) Gibt null für Assemblybundles zurück Löst eine Ausnahme für Assemblybundles aus
Environment.GetCommandLineArgs()[0] Der Wert ist der Name der Einstiegspunkt-DLL. Der Wert ist der Name der ausführbaren Hostdatei.
AppContext.BaseDirectory Der Wert ist das temporäre Extraktionsverzeichnis. Der Wert ist das Verzeichnis, das die ausführbare Hostdatei enthält.

Eingeführt in Version

5.0

Vermeiden Sie Abhängigkeiten vom Speicherort der Assemblydatei, wenn die Veröffentlichung als einzelne Datei erfolgt.

Betroffene APIs