NativeAOT używa prefiksu lib dla danych wyjściowych biblioteki natywnej w systemie Unix

Począwszy od .NET 11, NativeAOT stosuje prefiks lib (na przykład libmylib.so, libmylib.dylib, libmylib.a) do domyślnych nie wykonywalnych danych wyjściowych bibliotek natywnych na platformach Unix. Nowa właściwość MSBuild , UseNativeLibPrefixumożliwia rezygnację z tego zachowania.

Wersja wprowadzona

.NET 11 (wersja zapoznawcza 3)

Poprzednie zachowanie

Wcześniej funkcja NativeAOT nie zastosowała prefiksu lib do natywnych danych wyjściowych biblioteki w systemie Unix. Przykład:

  • Wyjściowa biblioteka współdzielona nosiła nazwę mylib.so.
  • Wynik biblioteki statycznej został nazwany mylib.a.

Nowe zachowanie

Począwszy od .NET 11, nativeAOT stosuje prefiks lib domyślnie do danych wyjściowych bibliotek nie wykonywalnych natywnych w systemie Unix. Przykład:

  • Dane wyjściowe biblioteki udostępnionej mają teraz nazwę libmylib.so.
  • Dane wyjściowe biblioteki statycznej mają teraz nazwę libmylib.a.

Aby zrezygnować z nowego zachowania, ustaw wartość UseNativeLibPrefix na false w pliku projektu:

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

Typ zmiany przełamującej

Ta zmiana jest zmianą behawioralną.

Przyczyna zmiany

Prefiks lib jest powszechnie akceptowaną konwencją nazewnictwa dla bibliotek udostępnionych i statycznych na platformach Unix. Stosowanie go domyślnie zwiększa spójność i współdziałanie z innymi narzędziami i systemami opartymi na systemie Unix. Eliminuje również konieczność stosowania obejść w .NET dla Androida, co wymusza dostosowanie plików binarnych do tej konwencji.

Aby uzyskać więcej informacji, zobacz oryginalne żądanie ściągnięcia.

Przejrzyj dane wyjściowe kompilacji i zaktualizuj wszystkie skrypty, procesy wdrażania lub konfiguracje, które zależą od poprzednich konwencji nazewnictwa. Specyficznie:

  • Aktualizowanie skryptów i narzędzi: jeśli skrypty kompilacji lub wdrażania odwołują się do danych wyjściowych biblioteki natywnej według nazwy, zaktualizuj je, aby uwzględnić nowy lib prefiks.

  • W razie potrzeby zrezygnujlib: jeśli prefiks powoduje problemy w przepływie pracy, ustaw wartość UseNativeLibPrefix na false w pliku projektu:

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

Interfejsy API, których dotyczy problem

Żaden.