Partilhar via


Redistribuindo componentes usando módulos de mesclagem

Importante

No Visual Studio 2019 e posterior, os módulos de mesclagem para arquivos Visual C++ Redistributable foram preteridos. Não recomendamos que você os use para implantação de aplicativos. Os redistribuíveis instalados usando módulos Merge não podem ser atualizados pelo Windows Update porque o mecanismo de deteção depende do conhecimento dos detalhes do pacote de instalação. Os pacotes redistribuíveis do Visual C++ são conhecidos para cada versão, mas os pacotes que usam MSMs são gerados pelo usuário. A Microsoft não pode saber os detalhes dos pacotes gerados pelo usuário. Em vez disso, recomendamos que você use a implantação central do pacote Visual C++ Redistributable. A implantação central instala os arquivos Redistribuíveis na pasta Windows %SYSTEMROOT%\system32\ para uso por todos os aplicativos e usuários. A implantação central por um pacote Redistributable possibilita que a Microsoft atenda arquivos de biblioteca de tempo de execução de forma independente. Além disso, uma desinstalação do seu aplicativo não pode interromper outros aplicativos que também usam a implantação central. Quando você usa um pacote Redistributable para implantação central, não é responsável por controlar e atualizar as bibliotecas de tempo de execução como parte da manutenção do aplicativo: o serviço Microsoft Update atualiza essas bibliotecas para você. Caso contrário, uma atualização das bibliotecas de execução exige que deva atualizar e reinstalar o seu instalador .msi. Seu aplicativo pode estar vulnerável a bugs ou problemas de segurança até que você o faça.

O Visual Studio inclui módulos de mesclagem (.msm arquivos) para cada componente do Visual C++ licenciado para redistribuição com um aplicativo. Existem versões separadas dos módulos de mesclagem para cada plataforma de destino. Quando um módulo de mesclagem é compilado em um arquivo de instalação do Windows Installer, ele permite a implantação de arquivos Visual C++ Redistributable para essa plataforma específica. Não é possível incluir módulos de mesclagem para versões diferentes da mesma DLL em um instalador. No arquivo de configuração do instalador, especifique que os módulos de mesclagem são pré-requisitos para seu aplicativo.

Você pode usar módulos de mesclagem para implantação central ou implantação local. Os usuários não podem instalar arquivos implantados centralmente, a menos que tenham direitos de administrador. A implantação local pode permitir que um não administrador instale e execute seu aplicativo, mas ao custo da capacidade de manutenção independente.

O serviço de instalação relata um erro se você tentar a implantação central de módulos de mesclagem mais antigos em bibliotecas existentes mais recentes. Você deve escrever a configuração do instalador para lidar com essa falha normalmente e não exibir uma mensagem de erro. Seu código ainda pode ser implantado e executado com êxito, apesar dessa falha. Para obter mais informações, consulte Compatibilidade binária C++ entre versões do Visual Studio.

Se você implantar seu código apenas como um .msi instalador, recomendamos que não inclua os módulos de mesclagem no instalador. Em vez disso, relate uma falha ao usuário quando as bibliotecas Redistribuíveis necessárias não forem encontradas. Na caixa de diálogo de falha, inclua instruções sobre como localizar e instalar o pacote Redistributable mais recente. Para obter mais informações e links para pacotes redistribuíveis, consulte Os últimos downloads suportados do Visual C++.

Os pacotes Redistribuíveis e módulos de mesclagem mais recentes são compatíveis com o código criado usando o Visual Studio 2015 e posterior. O código criado por versões do Visual Studio anteriores a 2015 requer um pacote Redistribuível separado.

Quando usar módulos de mesclagem

Os módulos de mesclagem só são apropriados em circunstâncias limitadas:

  • Você não pode instalar ou exigir um pacote Redistribuível separado por motivos de política,
  • Seu código requer uma versão específica e compatível com bugs das bibliotecas,
  • Seu código tem como alvo apenas uma plataforma e você não tem dependências em mais de uma versão das DLLs,
  • Você pretende fazer a manutenção do código implantado regularmente, para que as bibliotecas permaneçam atualizadas.

Ao usar módulos de mesclagem, você deve acompanhar e fazer a manutenção regular do seu aplicativo com atualizações de biblioteca. Caso contrário, você eventualmente forçará seus clientes a escolher entre executar seu código ou permanecer seguro.

Onde encontrar arquivos de módulo de mesclagem

No Visual Studio 2022 e 2019, os arquivos de módulo de mesclagem fazem parte de um componente opcional instalável denominado C++ <versão> MSMs Redistribuíveis no Visual Studio Installer. Os módulos de mesclagem são instalados por padrão como parte de uma instalação C++ no Visual Studio 2017 e Visual Studio 2015. Quando instalado no Visual Studio 2022, você encontrará os módulos de mesclagem do Visual C++ Redistributable no %VCINSTALLDIR%Redist\MSVC\v143\MergeModules. Na versão mais recente do Visual Studio 2019, os módulos de mesclagem estão em %VCINSTALLDIR%Redist\MSVC\v142\MergeModules. No Visual Studio 2019 e no Visual Studio 2017, eles também são encontrados em %VCToolsRedistDir%MergeModules. No Visual Studio 2015, eles são encontrados em Program Files [(x86)]\Common Files\Merge Modules. Para obter mais informações e um link para uma lista de módulos de mesclagem redistribuíveis, consulte Redistribuindo arquivos do Visual C++.

Ver também

Redistribuindo arquivos do Visual C++