Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модель развертывания с зависимостью от платформы была наиболее успешной моделью развертывания с момента запуска .NET. При таком сценарии разработчик приложения связывает только приложение и сторонние сборки, ожидая, что среды выполнения .NET и библиотеки будут доступны на клиентском компьютере. Эта модель развертывания продолжает оставаться доминирующей в последней версии .NET, однако есть некоторые сценарии, в которых модель, зависящая от платформы, является не лучшим выбором. Альтернативой является публикация автономного приложения, в котором среда выполнения .NET и библиотеки среды выполнения объединены вместе с приложением и сторонними сборками.
Специализированная версия автономной модели развертывания под названием "trim-self-contained" оптимизирована для уменьшения размера развертывания. Минимизация размера развертывания является критически важным требованием для некоторых сценариев на стороне клиента, например приложений Blazor. В зависимости от сложности приложения указывается только подмножество сборок платформы, а для запуска приложения требуется подмножество кода в каждой сборке. Неиспользуемые компоненты библиотеки не нужны, поэтому их можно удалить из упакованного приложения.
Однако существует риск того, что анализ времени сборки приложения может привести к сбоям во время выполнения, из-за того, что не удается надежно проанализировать различные проблемные шаблоны кода (в значительной степени сосредоточено на использовании отражения). Чтобы устранить такие проблемы, создаются предупреждения всякий раз, когда не удается полностью проанализировать шаблон кода. Для получения сведений о значении предупреждений об обрезке и способах их устранения см. раздел "Исправление предупреждений обрезки". Сведения о том, как работает обрезка и почему некоторые шаблоны вызывают предупреждения, см. в разделе "Общие сведения о анализе обрезки".
Примечание.
- Функция обрезки полностью поддерживается в .NET 6 и более поздних версиях. В .NET Core 3.1 и .NET 5 обрезка была экспериментальной функцией.
- Тримминг доступен только для приложений, публикуемых в автономном режиме.
Компоненты, вызывающие проблемы при обрезке
Предупреждение
Не все типы проектов можно обрезать. Для получения дополнительной информации см. Известные проблемы совместимости с обрезкой.
Любой код, который вызывает проблемы при анализе во время компиляции, плохо подходит для обрезки. Некоторые шаблоны программирования, которые вызывают типичные проблемы при использовании в приложении, возникают из-за использования неограниченных отражений и внешних зависимостей, не доступных во время компиляции. Примером неограниченного отражения является использование устаревшего сериализатора, такого как XML-сериализация, а примером невидимых внешних зависимостей служит встроенный COM. Сведения об устранении предупреждений об обрезке в приложении см. в разделе "Исправление предупреждений обрезки", а чтобы обеспечить совместимость библиотек .NET с обрезкой, см. в разделе "Подготовка библиотек .NET для обрезки".
Включить обрезку
Добавьте
<PublishTrimmed>true</PublishTrimmed>в файл проекта.Это свойство создает обрезаемое приложение для автономной публикации. Также будут отключены функции, несовместимые с trim, а во время сборки будут отображаться предупреждения о совместимости trim.
<PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>Затем опубликуйте приложение с помощью команды dotnet publish или Visual Studio.
Публикация с помощью CLI
В следующем примере приложение для Windows публикуется как обрезанное автономное приложение.
dotnet publish -r win-x64
Обрезка поддерживается только для автономных приложений.
<PublishTrimmed> необходимо задать в файле проекта, чтобы несовместимые с обрезкой функции были отключены во время dotnet build. Однако этот параметр также можно задать в качестве аргумента dotnet publish:
dotnet publish -r win-x64 -p:PublishTrimmed=true
Дополнительные сведения см. в обзоре публикации приложений .NET.
Публикация с помощью Visual Studio
В обозревателе решенийщелкните правой кнопкой мыши проект, который вы хотите опубликовать, и выберите Свойства.
Выберите Сборка>Опубликовать.
Выберите Опубликовать обрезанное, чтобы опубликовать приложение в обрезанном виде.
Дополнительные сведения см. в обзоре публикации приложений .NET.
Дальнейшие шаги
После включения обрезки, во время сборки могут возникнуть предупреждения об обрезке. Выполните следующие руководства, чтобы понять и устранить их:
- Общие сведения об анализе обрезки. Узнайте , как работает триммер и почему определенные шаблоны кода создают предупреждения. В этом концептуальном руководстве объясняется основные принципы анализа обрезки.
- Исправьте предупреждения о тримминге - Пошаговые инструкции по устранению предупреждений о тримминге в вашем коде.
- Подготовьте библиотеки для обрезки . Сделайте библиотеки совместимыми с обрезкой.
- Параметры обрезки — справочник по свойствам MSBuild, которые управляют поведением обрезки.