Partilhar via


Corte implantações autônomas e executáveis

O modelo de implantação dependente da estrutura tem sido o modelo de implantação mais bem-sucedido desde o início do .NET. Nesse cenário, o desenvolvedor de aplicativos agrupa apenas o aplicativo e assemblies de terceiros com a expectativa de que as bibliotecas de tempo de execução e tempo de execução do .NET estarão disponíveis na máquina cliente. Esse modelo de implantação continua a ser o dominante na versão mais recente do .NET, no entanto, há alguns cenários em que o modelo dependente da estrutura não é a melhor escolha. A alternativa é publicar um aplicativo independente, onde as bibliotecas de tempo de execução e tempo de execução do .NET são agrupadas junto com o aplicativo e assemblies de terceiros.

O modelo de implantação independente de corte é uma versão especializada do modelo de implantação independente que é otimizada para reduzir o 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 um subconjunto do código dentro 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á um risco de que a análise em tempo de compilação do aplicativo possa causar falhas em tempo de execução, devido a não ser capaz de analisar de forma confiável vários padrões de código problemáticos (em grande parte centrados no uso de reflexão). Para atenuar esses problemas, avisos são produzidos sempre que o cortador não pode analisar completamente um padrão de código. Para obter informações sobre o significado dos avisos de corte e como resolvê-los, consulte Introdução aos avisos de corte.

Nota

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

Componentes que causam problemas de corte

Aviso

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

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

Ativar corte

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

    Essa propriedade produzirá um aplicativo cortado na publicação independente. Ele também desativa recursos incompatíveis com trim e mostra avisos de compatibilidade de trim 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 autônomo cortado.

dotnet publish -r win-x64

O corte só é suportado para aplicações autónomas.

<PublishTrimmed> deve ser definido no arquivo de projeto para que os recursos incompatíveis com trim sejam desativados durante dotnet buildo . 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 Publicar aplicativos .NET com a CLI do .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 Publicar.

    Solution Explorer with a right-click menu highlighting the Publish option.

    Se você ainda não tiver um perfil de publicação, siga as instruções para criar um e escolha o tipo de destino Pasta .

  2. Escolha Mais ações>Editar.

    Visual studio publish profile with edit button.

  3. Na caixa de diálogo Configurações de perfil, defina as seguintes opções:

    • Defina o modo de implantação como autônomo.
    • Defina o tempo de execução do Target para a plataforma na qual você deseja publicar.
    • Selecione Cortar código não utilizado.

    Escolha Salvar para salvar as configurações e retornar à caixa de diálogo Publicar .

    Profile settings dialog with deployment mode, target runtime, and trim unused assemblies options highlighted.

  4. Escolha Publicar para publicar seu aplicativo cortado.

Para obter mais informações, consulte Publicar aplicativos .NET Core com Visual Studio.

Publicar com o Visual Studio para Mac

O Visual Studio para Mac não fornece opções para publicar seu aplicativo. Você precisará publicar manualmente seguindo as instruções da seção Publicação com a CLI . Para obter mais informações, consulte Publicar aplicativos .NET com a CLI do .NET.

Consulte também