Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с .NET 11, NativeAOT по умолчанию применяет префикс lib (например, libmylib.so, libmylib.dylib, libmylib.a) к неисполняемым выходным данным собственных библиотек на платформах Unix. Новое свойство UseNativeLibPrefixMSBuild позволяет отказаться от этого поведения.
Представленная версия
.NET 11 предварительная версия 3
Предыдущее поведение
Ранее NativeAOT не применял lib префикс к выходным данным собственной библиотеки в Unix. Рассмотрим пример.
- Выходные данные общей библиотеки были названы
mylib.so. - Выходной файл статической библиотеки был назван
mylib.a.
Новое поведение
Начиная с .NET 11, NativeAOT применяет префикс lib по умолчанию к выходным данным неисполнимой собственной библиотеки в Unix. Рассмотрим пример.
- Выходные данные общей библиотеки теперь называются
libmylib.so. - Выходные данные статической библиотеки теперь называются
libmylib.a.
Чтобы отказаться от нового поведения, установите значение UseNativeLibPrefixfalse в файле проекта:
<PropertyGroup>
<UseNativeLibPrefix>false</UseNativeLibPrefix>
</PropertyGroup>
Тип разрушающего изменения
Это изменение поведения.
Причина изменения
Префикс lib — это широко принятое соглашение об именовании общих и статических библиотек на платформах Unix. Применение по умолчанию повышает согласованность и взаимодействие с другими инструментами и системами на основе Unix. Он также исключает необходимость обходных решений в .NET для Android, что требует, чтобы двоичные файлы следовали этому соглашению.
Дополнительные сведения см. в исходном pull request.
Рекомендуемое действие
Просмотрите выходные данные сборки и обновите все скрипты, процессы развертывания или конфигурации, зависящие от предыдущих соглашений об именовании. Specifically:
Обновите скрипты и средства. Если ваши скрипты сборки и развертывания ссылаются на выходные данные собственных библиотек по имени, обновите их, чтобы учесть новый префикс . Откажитесь при необходимости: Если префикс
libвызывает проблемы в рабочем процессе, установитеUseNativeLibPrefixв значениеfalseв вашем файле проекта.<PropertyGroup> <UseNativeLibPrefix>false</UseNativeLibPrefix> </PropertyGroup>
Затронутые API
Нет.