Escolher um método de implantação

Recomendamos que você use o Windows Installer para implantação. O Windows Installer oferece suporte à instalação, ao reparo e à desinstalação, e também oferece suporte à atualização atômica dos arquivos de aplicativo, dependências e das entradas do Registro. A menos que seu aplicativo do Visual C++ seja autossuficiente e possa ser implantado usando um comando de cópia, use o Windows Installer.

Observação

Embora a implantação do ClickOnce para aplicativos nativos do Visual C++ seja possível no Visual Studio, ela exige etapas extras. Para obter mais informações, confira Implantação do ClickOnce para aplicativos do Visual C++.

As bibliotecas do Visual C++ são DLLs compartilhadas

Como as bibliotecas do Visual C++ são instaladas no diretório %windir%\system32\ pelo instalador do Visual Studio, quando você desenvolve um aplicativo do Visual C++ que depende delas, ele será executado como esperado. No entanto, a maioria dos computadores não tem o Visual Studio instalado. Para implantar o aplicativo nesses computadores, recomendamos garantir que as bibliotecas sejam instaladas junto com ele.

Bibliotecas do Visual C++ redistribuíveis

Em suas implantações, você pode redistribuir qualquer versão de uma biblioteca do Visual C++ que é licenciada para redistribuição. Estas são três maneiras de implantá-las:

  • Implantação central usando o Pacote Redistribuível do Visual C++. Essa abordagem é a que recomendamos. Um Pacote Redistribuível do Visual C++ é um executável que instala bibliotecas do Visual C++ como DLLs compartilhadas em %windir%\system32\. (A instalação nessa pasta requer direitos de administrador.) Você pode criar um inicializador, um script ou um programa de instalação que executa o pacote redistribuível antes de instalar o aplicativo no computador de destino. Pacotes redistribuíveis estão disponíveis para as plataformas x86, x64, ARM64 e ARM. Para obter mais informações sobre onde encontrar os arquivos de pacote, consulte Localizar os arquivos redistribuíveis. Para obter informações sobre como usar um pacote redistribuível, confira Passo a passo: implantando um aplicativo do Visual C++ usando o Pacote Redistribuível do Visual C++.

  • Implantação central usando módulos de mesclagem. Esse método foi preterido porque as bibliotecas implantadas dessa forma não podem ser atualizadas automaticamente pelo Windows Update. Você pode usar módulos de mesclagem para instalar uma biblioteca específica do Visual C++ como uma DLL compartilhada em %windir%\system32\. (A instalação nessa pasta requer direitos de administrador.) Os módulos de mesclagem tornam-se parte do arquivo de instalador .msi do aplicativo. Como foram preteridos, os módulos de mesclagem do Pacote Redistribuível do Visual C++ são um componente opcional instalável no Visual Studio 2022 e 2019. Eles são instalados por padrão no Visual Studio 2017 e 2015. Para obter mais informações, consulte Onde encontrar arquivos de módulo de mesclagem.

  • Implantação local. A implantação local não é recomendada na maioria das situações. Na implantação local, você copia DLLs específicas do Visual C++ da instalação do Visual Studio – normalmente em \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\ – e as instala nos computadores de destino na mesma pasta do executável do aplicativo. Você pode usar esse método de implantação para habilitar a instalação por usuários que não têm direitos de administrador. Ou para aplicativos que podem ser executados em um pen drive ou um compartilhamento de rede.

Se uma implantação usar módulos de mesclagem redistribuíveis, o usuário que instalar o aplicativo precisará ter direitos administrativos. Caso contrário, as DLLs do Visual C++ não serão instaladas e o aplicativo poderá não ser executado. Instaladores de aplicativos que permitem a instalação por usuário instalam as bibliotecas em um local compartilhado que afeta todos os usuários do sistema. Use a implantação local para instalar as DLLs necessárias do Visual C++ no diretório do aplicativo de um usuário específico. Essa abordagem não afetará outros usuários nem exigirá direitos de administrador. Como isso pode criar problemas de capacidade de serviço, não recomendamos a implantação local de DLLs do Pacote Redistribuível do Visual C++.

A implantação incorreta de bibliotecas do Visual C++ pode causar erros de tempo de execução durante a execução de um aplicativo que dependem delas. Quando o sistema operacional carrega o aplicativo, ele usa a ordem de pesquisa descrita em LoadLibraryEx.

A vinculação dinâmica é melhor que a vinculação estática

Recomendamos que você evite usar a vinculação estática ao redistribuir bibliotecas do Visual C++. Embora a vinculação estática quase nunca melhora significativamente o desempenho do aplicativo, quase sempre torna a manutenção mais cara. Por exemplo, considere um aplicativo vinculado estaticamente com uma biblioteca que foi atualizada com aprimoramentos de segurança. O aplicativo não pode se beneficiar a menos que seja recompilado e reimplantado. Em vez disso, recomendamos que você vincule dinamicamente seus aplicativos às bibliotecas de que eles dependem. Em seguida, as bibliotecas poderão ser atualizadas onde quer que sejam implantadas.

Confira também

Implantando aplicativos da área de trabalho
Segurança e implantação do ClickOnce
Exemplos de implantação