Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As implantações de aplicativos autônomos do .NET Core incluem as bibliotecas do .NET Core e o tempo de execução do .NET Core. A partir do SDK do .NET Core 2.1 (versão 2.1.300), uma implantação de aplicativo independente publica o tempo de execução de patch mais alto em sua máquina. Por padrão, para uma implantação independente, dotnet publish 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 autônomos são criados especificando -r <RID> no dotnet publish comando ou especificando o identificador de tempo de execução (RID) no arquivo de projeto (csproj / vbproj) ou na linha de comando.
Visão geral da progressão da versão do patch
restore
build e publish são dotnet comandos que podem ser executados separadamente. A escolha de tempo de execução é parte da restore operação, não publish ou build. Se ligar para publish, a versão mais recente do patch será escolhida. Caso chame publish com o argumento --no-restore, talvez não obtenha a versão de patch desejada porque uma execução anterior de restore pode não ter sido realizada com a nova política de publicação de aplicação autónoma. Nesse caso, um erro de compilação é 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 em vez disso. Para resolver esse problema, certifique-se de que 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 recebem contexto adicional para que os artefatos certos sejam produzidos. Quando você publish com um tempo de execução (por exemplo, dotnet publish -r linux-x64), o implícito restore restaura pacotes para o tempo de execução do linux-x64. Se você chamar restore explicitamente, ele não restaurará pacotes de tempo de execução por padrão, porque não tem esse contexto.
Como evitar a restauração durante a publicação
A execução restore como parte da operação pode ser indesejável para o publish seu cenário. Para evitar restore durante publish a criação de aplicativos autônomos, faça o seguinte:
- Defina a
RuntimeIdentifierspropriedade como uma lista separada por ponto-e-vírgula de todos os RIDs a serem publicados. - Defina a propriedade
TargetLatestRuntimePatchcomotrue.
Argumento no-restore com opções de publicação do .NET
Se você deseja criar aplicativos autônomos e aplicativos dependentes de estrutura com o mesmo arquivo de projeto e deseja usar o --no-restore argumento com dotnet publish, escolha uma das seguintes opções:
Prefira o comportamento dependente da estrutura. Se o aplicativo for dependente da estrutura, esse é o comportamento padrão. Se o aplicativo for autônomo e puder usar um tempo de execução local 2.1.0 sem patch, defina o
TargetLatestRuntimePatchcomofalseno arquivo de projeto.Prefira o comportamento autónomo. Se o aplicativo for independente, esse é o comportamento padrão. Se a aplicação depender do framework e exigir o patch mais recente instalado, defina o valor de
TargetLatestRuntimePatchparatrueno arquivo de projeto.Assuma o controle explícito da versão da estrutura de tempo de execução definindo
RuntimeFrameworkVersionpara a versão de patch específica no arquivo de projeto.