Compartilhar via


Implantação no Microsoft C++

A instalação do aplicativo em um computador diferente do computador de desenvolvimento é conhecida como implantação. Ao implantar um aplicativo Microsoft C++ em outro computador, você deve instalar o aplicativo e todos os arquivos de biblioteca dos quais ele depende. O Visual Studio permite três maneiras de implantar as bibliotecas do Microsoft C++ junto com seu 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 Microsoft C++, você pode usar uma destas duas fontes para que os arquivos instalem:

  • 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 Microsoft C++ para uma arquitetura de sistema específica. Por exemplo, se o aplicativo for criado para x64, você poderá usar o vcredist_x64.exe pacote para instalar todas as bibliotecas do Microsoft C++ que seu aplicativo usa. 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 Microsoft 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 automaticamente as bibliotecas do Microsoft 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 único binário sem uma dependência de DLL, para que você não precise implantar os arquivos de biblioteca do Microsoft 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 Microsoft C++ depende 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