Freigeben über


NativeAOT verwendet lib-Präfix für systemeigene Bibliotheksausgaben auf Unix

Ab .NET 11 wendet NativeAOT das Präfix lib (z. B. libmylib.so, libmylib.dylib, libmylib.a) standardmäßig auf nicht ausführbare systemeigene Bibliotheksausgaben auf Unix-Plattformen an. Mit einer neuen MSBuild-Eigenschaft UseNativeLibPrefixkönnen Sie dieses Verhalten deaktivieren.

Eingeführt in Version

.NET 11 Vorschau 3

Bisheriges Verhalten

Zuvor hat NativeAOT das lib Präfix nicht auf systemeigene Bibliotheksausgaben auf Unix angewendet. Beispiel:

  • Eine Ausgabe der gemeinsamen Bibliothek wurde benannt mylib.so.
  • Eine statische Bibliotheksausgabe wurde benannt mylib.a.

Neues Verhalten

Ab .NET 11 wendet NativeAOT standardmäßig das Präfix lib auf nicht ausführbare systemeigene Bibliotheksausgabe auf Unix an. Beispiel:

  • Die Ausgabe einer geteilten Bibliothek wird nun libmylib.so genannt.
  • Eine ausgabe einer statischen Bibliothek heißt jetzt libmylib.a.

Um das neue Verhalten zu deaktivieren, setzen Sie UseNativeLibPrefix auf false in Ihrer Projektdatei.

<PropertyGroup>
  <UseNativeLibPrefix>false</UseNativeLibPrefix>
</PropertyGroup>

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Das lib Präfix ist die allgemein akzeptierte Benennungskonvention für freigegebene und statische Bibliotheken auf Unix-Plattformen. Die Anwendung verbessert standardmäßig Konsistenz und Interoperabilität mit anderen Unix-basierten Tools und Systemen. Außerdem wird die Notwendigkeit von Problemumgehungen in .NET für Android entfernt, bei denen Binärdateien dieser Konvention folgen müssen.

Weitere Details finden Sie in der ursprünglichen Pullanforderung.

Überprüfen Sie Ihre Buildausgaben und aktualisieren Sie alle Skripte, Bereitstellungsprozesse oder Konfigurationen, die von den vorherigen Benennungskonventionen abhängen. Dies gilt insbesondere in folgenden Fällen:

  • Aktualisieren von Skripts und Tools: Wenn Ihre Build- oder Bereitstellungsskripts nach Namen auf systemeigene Bibliotheksausgaben verweisen, aktualisieren Sie sie so, dass das neue lib Präfix berücksichtigt wird.

  • Deaktivieren Sie bei Bedarf: Wenn das lib Präfix Probleme in Ihrem Workflow verursacht, setzen Sie UseNativeLibPrefix in der Projektdatei auf false.

    <PropertyGroup>
      <UseNativeLibPrefix>false</UseNativeLibPrefix>
    </PropertyGroup>
    

Betroffene APIs

Keiner.