Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Развертывания автономных приложений .NET Core включают как библиотеки .NET Core, так и среду выполнения .NET Core. Начиная с пакета SDK для .NET Core 2.1 (версия 2.1.300), развертывание автономного приложения публикует самую последнюю версию среды выполнения с последними патчами на вашем компьютере. По умолчанию для автономного развертывания выбирается последняя версия, dotnet publish
установленная в составе пакета SDK на компьютере публикации. Это позволяет развернутое приложение запускаться с исправлениями безопасности (и другими исправлениями), доступными во время publish
. Чтобы получить новое исправление, приложение должно быть повторно опубликовано. Автономные приложения создаются путём указания -r <RID>
на команду dotnet publish
или указания идентификатора среды выполнения (RID) в файле проекта (csproj/vbproj) или в командной строке.
Обзор переката версии исправлений
restore
, build
и publish
— это команды dotnet
, которые могут выполняться отдельно. Выбор среды выполнения является частью restore
операции, а не publish
build
. При вызове publish
будет выбрана последняя версия исправления. При вызове publish
с аргументом --no-restore
вы можете не получить нужную версию исправления, так как предыдущее restore
возможно не было выполнено с новой автономной политикой публикации приложений. В этом случае ошибка сборки создается с текстом, аналогичным следующему:
"Проект был восстановлен с помощью Microsoft.NETCore.App версии 2.0.0.0, но с текущими параметрами вместо этого будет использоваться версия 2.0.6. Чтобы устранить эту проблему, убедитесь, что те же параметры используются для восстановления и последующих операций, таких как сборка или публикация. Как правило, эта проблема может возникать, если свойство RuntimeIdentifier задано во время сборки или публикации, но не во время восстановления".
Замечание
restore
и build
может выполняться неявно в рамках другой команды, например publish
. При выполнении неявно в рамках другой команды им предоставляется дополнительный контекст, чтобы создавались правильные объекты. Когда вы publish
со средой выполнения (например, dotnet publish -r linux-x64
), неявное restore
восстанавливает пакеты для среды выполнения linux-x64. При явном вызове restore
он не восстанавливает пакеты среды выполнения по умолчанию, так как он не имеет этого контекста.
Как избежать восстановления при публикации
Выполнение restore
в рамках publish
операции может оказаться нежелательным для вашего сценария. Чтобы избежать restore
при publish
создании автономных прикладных программ, сделайте следующее:
- Присвойте свойству
RuntimeIdentifiers
список, разделенный точкой с запятой, всех идентификаторов RID, которые будут опубликованы. - Задайте для свойства
TargetLatestRuntimePatch
значениеtrue
.
Аргумент no-restore в параметрах команды dotnet publish
Если вы хотите создать автономные приложения и приложения, зависящие от платформы , с одним и тем же файлом проекта, и вы хотите использовать --no-restore
аргумент с dotnet publish
, выберите одно из следующих вариантов:
Предпочитайте поведение, зависимое от платформы. Если приложение зависит от платформы, это поведение по умолчанию. Если приложение является автономным и может использовать необновленную локальную среду выполнения 2.1.0, установите
TargetLatestRuntimePatch
в положениеfalse
в файле проекта.Предпочитайте автономное поведение. Если приложение самодостаточено, это поведение по умолчанию. Если приложение зависит от платформы и требует последнего установленного исправления, установите значение
TargetLatestRuntimePatch
true
в файле проекта.Запустите явный контроль над версией платформы среды выполнения, задав
RuntimeFrameworkVersion
конкретную версию исправления в файле проекта.