Publicar um projeto ReadyToRun com --no-restore requer alterações na restauração
Se você publicar um projeto com -p:PublishReadyToRun=true
além de --no-restore
, o projeto será compilado apenas com pacotes que foram restaurados em uma operação dotnet restore
anterior. No .NET 5, esse processo funcionava e resultava em um binário crossgen'd. No .NET 6, esse mesmo processo falhará com o erro NETSDK1094.
Versão introduzida
.NET 6
Comportamento anterior
Nas versões anteriores, o aplicativo crossgen era empacotado com o runtime. Como resultado, o processo de crossgen era capaz de ser executado em seu aplicativo, independentemente de o projeto ter sido restaurado ou não. Era uma prática comum separar dotnet restore
de dotnet publish
, adicionando --no-restore
ao comando de publicação para garantir que nenhum acesso adicional à rede ocorresse.
Novo comportamento
No .NET 6, dotnet restore
seguido por dotnet publish -p:PublishReadyToRun=true --no-restore
, falhará com o erro de NETSDK1094. Isso ocorre porque o binário crossgen agora é enviado como um pacote NuGet separado e, portanto, precisa fazer parte da operação de restauração para que a publicação tenha êxito.
Motivo da alteração
O binário crossgen não é necessário em muitas cargas de trabalho, portanto, ele foi separado do SDK principal. Normalmente, ele é adquirido sob demanda, e as metas de publicação do MSBuild agora lidam com essa aquisição adicionando o pacote à lista de pacotes a serem restaurados.
Ação recomendada
- Se você quiser manter uma experiência de publicação isolada, informe à etapa de restauração que publicará ReadyToRun. Adicione
-p:PublishReadyToRun=true
à linha de comando de restauração também. - Ou remova
--no-restore
da linha de comando de publicação para permitir que o comando de publicação restaure o crossgen também.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de