Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Развертывания автономных приложений .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 операции, а не publishbuild. При вызове 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в файле проекта.Предпочитайте автономное поведение. Если приложение самодостаточено, это поведение по умолчанию. Если приложение зависит от платформы и требует последнего установленного исправления, установите значение
TargetLatestRuntimePatchtrueв файле проекта.Запустите явный контроль над версией платформы среды выполнения, задав
RuntimeFrameworkVersionконкретную версию исправления в файле проекта.