evento
Crie aplicativos e agentes de IA
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
O dotnet publish
comando agora usa a Release
configuração em vez da configuração por padrão se a estrutura de Debug
destino for .NET 8 ou uma versão posterior.
Anteriormente, usava a Debug
configuração, dotnet publish
a menos que a configuração fosse especificada explicitamente ou PublishRelease
fosse definida como true
.
A PublishRelease
propriedade foi adicionada no .NET 7 como um caminho a seguir para essa alteração de rutura. Anteriormente, você podia definir a DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
variável de ambiente para usar PublishRelease
em um projeto que fazia parte de uma solução do Visual Studio.
Se você estiver desenvolvendo com o SDK do .NET 8 ou uma versão posterior, dotnet publish
usa a Release
configuração por padrão para projetos cuja TargetFramework
versão está definida como net8.0
ou posterior. Se você tiver um script de CI/CD, testes ou código em que tenha codificado Debug
em um caminho de saída, essa alteração poderá interromper seu fluxo de trabalho.
Se o seu projeto se destina a várias versões, o novo comportamento só se aplica se você especificar uma estrutura de destino do .NET 8 ou posterior quando publicar (por exemplo, usando dotnet publish -f net8.0
).
Para projetos em uma solução:
dotnet publish
pode publicar todos os projetos em uma solução do Visual Studio se receber um arquivo de solução. Para os projetos de solução destinados ao .NET 8 ou posterior, o valor de PublishRelease
é implicitamente definido como true
se estiver indefinido. No entanto, dotnet publish
para determinar a configuração correta a ser usada para a solução, todos os projetos na solução devem concordar com seu valor de PublishRelease
. Se um projeto mais antigo na solução tiver PublishRelease
definido como false
, você também deverá definir explicitamente a propriedade para false
qualquer novo projeto .NET 8+.
Essa alteração pode fazer com que o desempenho do regredi, dotnet publish
especialmente para soluções que contêm muitos projetos. Para resolver este problema, foi introduzida uma nova variável DOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONS
de ambiente.
A DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
variável de ambiente não é mais reconhecida.
.NET 8 Visualização 1
Essa alteração pode afetar a compatibilidade da fonte e também é uma mudança comportamental.
Na maioria dos casos, ao publicar, você deseja que seu código seja otimizado e pode manter o aplicativo menor excluindo informações de depuração. Os clientes pedem Release
para ser a configuração padrão há publish
muito tempo. Além disso, o Visual Studio tem esse comportamento há muitos anos.
A DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS
variável de ambiente foi removida, pois o comportamento habilitado agora é o comportamento padrão e o controle granular não é mais necessário.
Para desativar totalmente o novo comportamento, você pode definir a variável de DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE
ambiente como true
(ou qualquer outro valor). Esta variável afeta ambos e dotnet publish
dotnet pack
.
Para especificar explicitamente a Debug
configuração para publicação, use a -c
opção ou --configuration
com dotnet publish
.
Se o pipeline de CI/CD estiver quebrado devido a caminhos de saída codificados, atualize os caminhos para Release
em vez de , desative o novo comportamento usando a DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE
variável de Debug
ambiente ou especifique que a Debug
configuração deve ser usada.
Se você estiver publicando uma solução e ela estiver quebrada, poderá definir PublishRelease
explicitamente como true
(ou false
reverter para o comportamento anterior).
<PropertyGroup>
<PublishRelease>true</PublishRelease>
</PropertyGroup>
Como alternativa, você pode especificar a propriedade em um arquivo Directory.Build.Props . No entanto, se você defini-lo false
neste arquivo, ainda precisará definir explicitamente a propriedade como false
nos projetos .NET 8+ na solução. Da mesma forma, se alguns projetos definirem explicitamente um valor diferente do valor no arquivo Directory.Build.Props, a publicação falhará.
Se você estiver publicando uma solução e o desempenho tiver regredido, poderá definir a DOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONS
variável de ambiente como true
(ou qualquer outro valor) para remover a regressão. No entanto, se você definir essa variável e sua solução contiver um projeto .NET 8+ e um projeto destinado ao .NET 7 ou anterior, a publicação falhará até que todos os projetos definam PublishRelease
. Esta variável afeta ambos e dotnet publish
dotnet pack
.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
evento
Crie aplicativos e agentes de IA
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraFormação
Módulo
Publish an ASP.NET Core app - Training
Learn how to publish an ASP.NET Core app for deployment to a web server or cloud service.