Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As implantações de aplicativos independentes do .NET Core incluem as bibliotecas do .NET Core e o runtime do .NET Core. A partir do SDK do .NET Core 2.1 (.NET Core 2.1.300), uma implantação de aplicativo autocontida publica o runtime de patch mais recente no computador. Por padrão, dotnet publish
para uma implantação independente, seleciona a versão mais recente instalada como parte do SDK na máquina de publicação. Isso permite que seu aplicativo implantado seja executado com correções de segurança (e outras correções) disponíveis durante publish
. O aplicativo deve ser republicado para obter um novo patch. Aplicativos autocontidos são criados especificando -r <RID>
no dotnet publish
comando ou especificando o RID (identificador de runtime) no arquivo de projeto (csproj/vbproj) ou na linha de comando.
Visão geral do roll forward da versão de patch
restore
build
e publish
são dotnet
comandos que podem ser executados separadamente. A opção de runtime faz parte da restore
operação, não publish
ou build
. Se você chamar publish
, a versão mais recente do patch será escolhida. Se você chamar publish
com o argumento --no-restore
, poderá não obter a versão de patch desejada, porque um restore
anterior pode não ter sido executado com a nova política de publicação do aplicativo autossuficiente. Nesse caso, um erro de build é gerado com texto semelhante ao seguinte:
"O projeto foi restaurado usando Microsoft.NETCore.App versão 2.0.0, mas com as configurações atuais, a versão 2.0.6 seria usada. Para resolver esse problema, verifique se as mesmas configurações são usadas para restauração e para operações subsequentes, como compilar ou publicar. Normalmente, esse problema pode ocorrer se a propriedade RuntimeIdentifier for definida durante a compilação ou publicação, mas não durante a restauração."
Observação
restore
e build
pode ser executado implicitamente como parte de outro comando, como publish
. Quando executados implicitamente como parte de outro comando, eles são fornecidos com contexto adicional para que os artefatos certos sejam produzidos. Quando você executa publish
com um runtime (por exemplo, dotnet publish -r linux-x64
), o restore
implícito restaura os pacotes para o runtime linux-x64. Se você chamar restore
explicitamente, ele não restaurará pacotes de runtime por padrão, pois ele não tem esse contexto.
Como evitar a restauração durante o processo de publicação
A execução restore
como parte da publish
operação pode ser indesejável para seu cenário. Para evitar restore
durante publish
ao criar aplicativos autossuficientes, faça o seguinte:
- Defina a
RuntimeIdentifiers
propriedade como uma lista separada por ponto-e-vírgula de todos os RIDs a serem publicados . - Defina a propriedade
TargetLatestRuntimePatch
comotrue
.
Argumento no-restore com opções dotnet publish
Se você quiser criar aplicativos autocontidos e aplicativos dependentes do framework com o mesmo arquivo de projeto, e quiser usar o argumento --no-restore
com dotnet publish
, então escolha uma das seguintes opções:
Prefira o comportamento dependente de estrutura. Se o aplicativo depender da estrutura, esse será o comportamento padrão. Se o aplicativo for autossuficiente e puder usar um runtime local 2.1.0 sem patch, defina o
TargetLatestRuntimePatch
comofalse
no arquivo de projeto.Prefira o comportamento autossuficiente. Se o aplicativo for autônomo, esse será o comportamento padrão. Se o aplicativo depender do framework e exigir a instalação do patch mais recente, defina
TargetLatestRuntimePatch
paratrue
no arquivo de projeto.Assuma o controle explícito da versão da estrutura de runtime definindo
RuntimeFrameworkVersion
a versão do patch específica no arquivo de projeto.