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.
Se você publicar um projeto com -p:PublishReadyToRun=true além de --no-restore, o projeto só será construído com pacotes que foram restaurados em uma operação anterior dotnet restore. 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 foi empacotado com o runtime. Como resultado, o processo de crossgen foi 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 e adicionar --no-restore ao comando de publicação para garantir que não ocorressem acessos adicionais à rede.
Novo comportamento
No .NET 6, dotnet restore seguido por dotnet publish -p:PublishReadyToRun=true --no-restore falhará com o erro NETSDK1094. Isso ocorre porque o binário crossgen agora é distribuído como um pacote NuGet separado e, portanto, precisa ser parte da operação de restauração para que a publicação seja bem-sucedida.
Motivo da alteração
O binário crossgen não é necessário para 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-restoreda linha de comando de publicação para que o comando de publicação também restaure o crossgen.