Compartilhar via


Cortar implantações e executáveis autossuficientes

O modelo de implantação dependente de estrutura tem sido o modelo de implantação mais bem-sucedido desde a concepção do .NET. Nesse cenário, o desenvolvedor de aplicativos agrupa apenas o aplicativo e os assemblies de terceiros com a expectativa de que o runtime e as bibliotecas de runtime do .NET estejam disponíveis no computador cliente. Esse modelo de implantação continua sendo o dominante na versão mais recente do .NET, no entanto, há alguns cenários em que o modelo dependente de estrutura não é a melhor opção. A alternativa é publicar um aplicativo autossuficiente, em que o runtime e as bibliotecas de runtime do .NET são agrupados com o aplicativo e com assemblies de terceiros.

O modelo de implantação autossuficiente cortado é uma versão especializada do modelo de implantação autossuficiente, otimizada para redução do tamanho da implantação. Minimizar o tamanho da implantação é um requisito crítico para alguns cenários do lado do cliente, como aplicativos Blazor. Dependendo da complexidade do aplicativo, apenas um subconjunto dos assemblies da estrutura são referenciados e somente um subconjunto do código de cada assembly é necessário para executar o aplicativo. As partes não utilizadas das bibliotecas são desnecessárias e podem ser cortadas do aplicativo empacotado.

No entanto, há o risco de que a análise de tempo de build do aplicativo possa causar falhas em tempo de execução devido à incapacidade de analisar com confiabilidade vários padrões problemáticos de código (em grande parte centrados no uso de reflexão). Para atenuar esses problemas, avisos são produzidos sempre que o aparador não pode analisar totalmente um padrão de código. Para obter informações sobre o que os avisos de corte significam e como resolvê-los, consulte Corrigir avisos de corte. Para entender como o corte funciona e por que determinados padrões causam avisos, consulte Noções básicas sobre a análise de corte.

Observação

  • O corte é totalmente compatível com o .NET 6 e versões posteriores. No .NET Core 3.1 e no .NET 5, o corte era um recurso experimental.
  • O corte está disponível para aplicativos que são publicados autossuficientes.

Componentes que causam problemas de corte

Aviso

Nem todos os tipos de projeto podem ser cortados. Para obter mais informações, confira Incompatibilidades de corte conhecidas.

Qualquer código que cause desafios de análise em tempo de compilação não é adequado para corte. Alguns padrões comuns de codificação que são problemáticos quando usados por um aplicativo se originam do emprego de reflexão desassociada e das dependências externas que não são visíveis no momento da compilação. Um exemplo de reflexão desassociada é um serializador herdado, como a serialização XML, e um exemplo de dependências externas invisíveis é o COM interno. Para resolver avisos de corte em seu aplicativo, consulte Corrigir avisos de corte e para tornar sua biblioteca compatível com o corte, consulte Preparar bibliotecas do .NET para corte.

Habilitar o corte

  1. Adicione <PublishTrimmed>true</PublishTrimmed> ao arquivo de projeto.

    Essa propriedade vai gerar um aplicativo cortado na publicação autossuficiente. Ela também desativa recursos não compatíveis com corte e mostra avisos de compatibilidade de corte durante a compilação.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Em seguida, publique seu aplicativo usando o comando dotnet publish ou o Visual Studio.

Publicar com a CLI

O exemplo a seguir publica o aplicativo para Windows como um aplicativo autossuficiente cortado.

dotnet publish -r win-x64

O corte só é compatível com aplicativos autossuficientes.

<PublishTrimmed> deve ser definido no arquivo de projeto para que os recursos não compatíveis com corte sejam desabilitados durante dotnet build. No entanto, você também pode definir essa opção como um argumento para dotnet publish:

dotnet publish -r win-x64 -p:PublishTrimmed=true

Para obter mais informações, consulte a visão geral da publicação de aplicativos .NET.

Publicar com o Visual Studio

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto que deseja publicar e selecione Propriedades.

    Gerenciador de Soluções com um menu de clique com o botão direito do mouse realçando a opção Propriedades.

  2. Escolha Criar>Publicar.

    Página de publicação do Visual Studio com a opção Publicar Cortado.

  3. Selecione Publicar cortado para publicar seu aplicativo cortado.

    Página de publicação do Visual Studio com Publicar Cortado selecionado.

Para obter mais informações, consulte a visão geral da publicação de aplicativos .NET.

Próximas etapas

Depois de habilitar o recorte, você pode encontrar avisos de recorte durante a compilação. Siga estes guias para entendê-los e resolvê-los:

Confira também