Implantação no Visual C++

A instalação do aplicativo em um computador diferente do computador de desenvolvimento é conhecida como implantação. Ao implantar um aplicativo do Visual C++ em outro computador, é necessário instalar o aplicativo e os arquivos de biblioteca dos quais ele depende. O Visual Studio possibilita três maneiras de implantação das bibliotecas do Visual C++, junto com o aplicativo: implantação central, implantação local e vinculação estática. A implantação central coloca os arquivos de biblioteca no diretório do Windows, onde todos os aplicativos podem acessá-los automaticamente. A implantação local coloca os arquivos de biblioteca no mesmo diretório do aplicativo. É necessário reimplantar as bibliotecas implantadas localmente para atualizá-las. A vinculação estática associa o código de biblioteca ao aplicativo. É necessário recompilar e reimplantar o aplicativo para aproveitar as atualizações nas bibliotecas ao usar a vinculação estática.

No Visual Studio 2015, a biblioteca de Runtime do Microsoft C foi refatorada em componentes da biblioteca local específicos à uma versão e em uma nova biblioteca de Runtime do C Universal, que agora faz parte do Windows. Para obter detalhes sobre a implantação do CRT Universal, confira Implantação do CRT Universal.

Implantação central

Na implantação central, os arquivos DLL da biblioteca são instalados no diretório Windows\System32, ou para arquivos de biblioteca de 32 bits em sistemas x64, no diretório Windows\SysWow64. Arquivos de biblioteca implantados centralmente ficam disponíveis para outros aplicativos.

Para implantar centralmente as bibliotecas do Visual C++, use uma destas duas fontes para a instalação dos arquivos:

  • Arquivos de pacote redistribuível. Esses arquivos são executáveis de linha de comando autônomo que contêm todas as bibliotecas do Pacote Redistribuível do Visual C++ em formato compactado. Os pacotes redistribuíveis mais recentes estão disponíveis em Downloads com suporte mais recente do Pacote Redistribuível do Visual C++. Quando você usa pacotes redistribuíveis para implantação central, o Windows Update pode atender as bibliotecas de modo independente.

  • Módulos de mesclagem redistribuíveis (arquivos .msm), que você pode incluir no arquivo do Windows Installer (.msi) de seu aplicativo. Esse método foi preterido porque as bibliotecas implantadas dessa forma não podem ser atualizadas automaticamente pelo Windows Update. Para obter mais informações, consulte Redistribuir usando módulos de mesclagem.

Um arquivo de pacote redistribuível instala todas as bibliotecas do Visual C++ de uma arquitetura de sistema específica. Por exemplo, se o aplicativo é compilado para x64, você pode usar o pacote redistribuível vcredist_x64.exe para instalar todas as bibliotecas do Visual C++ usadas pelo aplicativo. Programe o instalador do aplicativo para executar o pacote como um pré-requisito antes de instalar o aplicativo.

A implantação central usando um pacote redistribuível permite que o Windows Update atualize automaticamente as bibliotecas do Visual C++. Para segurança e funcionalidade contínuas, recomendamos que você use as DLLs de biblioteca em seu aplicativo em vez de bibliotecas estáticas, e use pacotes redistribuíveis e implantação central em vez de implantação local.

Implantação local

Na implantação local, os arquivos de biblioteca são instalados na pasta do aplicativo junto com o arquivo executável. Diferentes versões de bibliotecas do Pacote Redistribuível do Visual C++ podem ser instaladas na mesma pasta, pois o nome de arquivo de cada versão inclui seu número de versão. Por exemplo, a versão 12 da biblioteca de runtime do C++ é msvcp120.dll, e a versão 14 é msvcp140.dll.

Expansões de uma biblioteca podem ser distribuídas entre várias DLLs extra, conhecidas como bibliotecas dot. Por exemplo, algumas funcionalidades da biblioteca padrão liberadas no Visual Studio 2017 versão 15.6 foram adicionadas em msvcp140_1.dll, para preservar a compatibilidade com o ABI de msvcp140.dll. Caso você use o Visual Studio 2017 versão 15.6 (conjunto de ferramentas 14.13) ou posterior, talvez precise implantar essas bibliotecas dot localmente, bem como a biblioteca principal. Essas bibliotecas dot separadas eventualmente serão adicionadas à biblioteca base quando a ABI for alterada.

Como a Microsoft não pode atualizar de forma automática as bibliotecas do Visual C++ implantadas localmente, não recomendamos a implantação local dessas bibliotecas. Se você decidir usar a implantação local de bibliotecas redistribuíveis, recomendamos implementar seu próprio método de atualização automática das bibliotecas localmente implantadas.

Vinculação estática

Além das bibliotecas de vínculo dinâmico, o Visual Studio fornece a maioria de suas bibliotecas como bibliotecas estáticas. Você pode vincular estaticamente uma biblioteca estática ao aplicativo, ou seja, vincular o código de objeto de biblioteca diretamente ao aplicativo. A vinculação estática cria um binário sem uma dependência de DLL, de modo que você não precise implantar os arquivos de biblioteca do Visual C++ separadamente. No entanto, não recomendamos o uso dessa abordagem, porque as bibliotecas de vínculo estático não podem ser atualizadas in-loco. Para atualizar uma biblioteca vinculada ao usar a vinculação estática, você precisará recompilar e reimplantar o aplicativo.

Solução de problemas de implantação

A ordem de carregamento das bibliotecas do Visual C++ é dependente do sistema. Para diagnosticar problemas do carregador, use depends.exe ou where.exe. Para obter mais informações, confira Ordem de pesquisa da biblioteca de vínculo dinâmico (Windows).

Confira também

Implantando aplicativos da área de trabalho
Implantação do Universal CRT