Compartilhar via


Choosing a Deployment Method

Implantação de aplicativos de Visual C++ é feita na maioria dos casos com implantação do Windows Installer.Para obter mais informações sobre métodos de implantação suportados no Visual Studio e as alternativas, consulte Escolhendo uma estratégia de implantação e Deployment Alternatives.Implantação de ClickOnce para aplicativos nativos de Visual C++ não é suportada em Visual Studio 2010; no entanto, é possível implantar aplicativos de Visual C++ através de ClickOnce na linha de comando.Para obter mais informações, consulte ClickOnce Deployment for Visual C++ Applications.

As bibliotecas do Visual C++ são dlls compartilhados

Visual Studio 2010 instala bibliotecas de Visual C++ como dlls compartilhados na pasta %windir% \ system32.Para garantir que seu aplicativo de Visual C++ é executado em um computador sem Visual C++ instalado, você pode ter que redistribuir DLL de Visual C++ com seu aplicativo e para garantir que são instalados no computador de destino.

Redistribuindo bibliotecas do Visual C++

Existem três maneiras para redistribuir DLL do Visual C++:

  • Recomendamos que você usa o pacote redistribuível do Visual C++ (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) para instalar todas as bibliotecas do Visual C++ como dlls compartilhados em %windir% \ system32.O Visual Studio instala este conjunto na pasta %WindowsSdkDir%\Bootstrapper\Packages.Você também pode baixá-lo Microsoft Download Centerdo.Para um exemplo de como usar este conjunto, consulte Walkthrough: Deploying a Visual C++ Application By Using the Visual C++ Redistributable Package.

  • Use os módulos de mesclagem redistribuíveis do Visual C++ para instalar uma biblioteca específico do Visual C++ como dlls compartilhados em %windir% \ system32.Acesso a essa pasta requer que o aplicativo installer foi executado por um usuário com direitos administrativos.Para obter mais informações por favor consulte Redistributing By Using Merge Modules.Um exemplo dessa implantação pode ser encontrado em Walkthrough: Deploying a Visual C++ Application By Using a Setup Project.

  • Instalar uma DLL específico do Visual C++ na mesma pasta que o aplicativo usando fornece arquivos no diretório arquivos de programas \ Microsoft Visual Studio 10,0 \ VC \ Redist.Essa maneira é recomendada para ativar a instalação de aplicativos por usuários que não têm direitos administrativos ou quando deve ser possível executar um aplicativo de um compartilhamento.

Ao instalar bibliotecas de Visual C++ redistribuíveis usando os módulos de mesclagem, as dlls são implantados como dlls compartilhados em %windir% \ system32.Acesso a essa pasta requer que o aplicativo installer foi executado por um usuário com direitos administrativos.

Se uma instalação é pontas por um usuário que não tenha direitos administrativos, a instalação não implantar as dlls de Visual C++ e o aplicativo não será executado.Além disso, alguns produtos podem permitir a instalação em uma base por usuário, mas os módulos de mesclagem instalar bibliotecas em locais compartilhados e afetam todos os usuários do sistema.Em ambos os esses cenários e semelhantes, a técnica é suportado instalar as dlls necessárias no diretório de um aplicativo de usuário específico.

Com essa técnica, é suficiente para copiar DLL para a pasta local do aplicativo.O carregador do sistema operacional, ao executar o aplicativo, usa a ordem de pesquisa descrito em LoadLibraryEx.

A redistribuição incorreta de bibliotecas do Visual C++ pode levar a erros em tempo de execução durante a execução de um aplicativo que depende de eles

Prefira vincular dinâmico sobre vincular estático

Não é recomendável redistribuir aplicativos de C/C++ que vinculam estaticamente a Visual C++ bibliotecas.Geralmente equivocadamente pressupõe-se que estaticamente vinculando seu programa a bibliotecas do Visual C++ é possível melhorar significativamente o desempenho de um aplicativo.No entanto impacto no desempenho de carregar dinamicamente bibliotecas de Visual C++ é irrisória em quase todos os casos.Além disso, vincular estático não permite prestando serviços de aplicativos para o aplicativo e suas bibliotecas dependentes por qualquer o autor ou Microsoft do aplicativo.Por exemplo, considere um aplicativo que está associado a uma biblioteca estaticamente específico, executando em um computador cliente com uma nova versão da biblioteca.O código do aplicativo de dispositivo ainda de versão anterior dessa biblioteca, e não se beneficia das melhorias de biblioteca, como aprimoramentos de segurança.Os autores de aplicativos de C/C++ são recomendados fortemente pensar através do cenário de serviço antes de decidir vincular estaticamente a bibliotecas dependentes, e usam dinâmico vinculando sempre que possível.

Consulte também

Conceitos

Escolhendo uma estratégia de implantação

Implantação e segurança de ClickOnce

Deployment Examples

Outros recursos

Deploying Native Desktop Applications (Visual C++)

Windows Installer Deployment Overview