Compartilhar via


Escolhendo um método de implantação

Na maioria dos casos implantação Visual C++ aplicativos é concluído com a implantação do Windows Installer. Para obter mais informações sobre métodos de implantação com suporte no Visual Studio e alternativas, consulte Escolhendo uma estratégia de implantação e Alternativas de implantação. Implantação do ClickOnce para Visual C++ Não há suporte para aplicativos nativo em Visual Studio 2005; No entanto, é possível implantar Visual C++ aplicativos por meio do ClickOnce na linha de comando. Para obter mais informações, consulte Implantação ClickOnce para aplicativos do Visual C++.

Bibliotecas do Visual C++ são montagens lado a lado

Visual Studio 2005 Instala Visual C++ bibliotecas sistema autônomo compartilhada conjuntos lado a lado.Por padrão, todos sistema autônomo aplicativos criados com Visual Studio 2005 são criados sistema autônomo aplicativos isolados with a manifesto ou incorporado sistema autônomo um recurso ou que acompanha o binário final sistema autônomo um arquivo externo.Para garantir que seu Visual C++ aplicativo será executado no computador sem Visual C++ instalado, talvez seja necessário redistribuir Visual C++ assemblies com o seu aplicativo e certifique-se estiverem instalados no computador de destino.

Redistribuindo bibliotecas Visual C++

Há três maneiras para redistribuir Visual C++ DLLs:

  1. Usando o Visual C++ redistribuível mesclagem Modules para instalar uma determinada biblioteca Visual C++ sistema autônomo compartilhada conjuntos lado a lado para o nativo assembly cache (pasta WinSxS).Essa é a maneira recomendada principal para redistribuir bibliotecas Visual C++.O acesso a essa pasta requer que o aplicativo instalador ser executado por um usuário com direitos administrativos.Para obter mais informações consulte Redistribuindo usando módulos de mesclagem. Um exemplo dessa implantação pode ser encontrado em Como: Implantar uma configuração e projeto de implantação.

  2. Usando o Visual C++ pacote redistribuível (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) para instalar todas sistema autônomo bibliotecas do Visual C++ sistema autônomo conjuntos lado a lado compartilhados no cache de assemblies nativo (pasta WinSxS) do.Este pacote é instalado pelo Visual Studio em pasta %WindowsSdkDir%\Bootstrapper\Packages\ e também pode ser baixado do Microsoft baixar site Microsoft Visual C++ 2005 Redistributable Package (x86).Redistribuir bibliotecas Visual C++ usando este pacote é recomendada para os aplicativos criados com Visual C++ Express e para casos quando a implantação de todas as bibliotecas do Visual C++ ao mesmo tempo é desejável.Para obter um exemplo de como usar este pacote consulte Como: implantar usando XCopy.

  3. Instalar um assembly específico do Visual C++ sistema autônomo um assembly particular para o aplicativo usando arquivos fornecem o diretório de 8\VC\Redist programa Files\Microsoft Visual Studio.Desse modo é recomendado para permitir a instalação de aplicativos, os usuários que não têm direitos administrativos ou quando deve ser possível executar um aplicativo de um compartilhamento.Para obter um exemplo, consulte Como: implantar usando XCopy.

Observação:

No Windows servidor 2000, a única recomendado e suporte maneira redistribuir Visual C++ bibliotecas é usar redistribuível mesclagem Modules.

Ao instalar Visual C++ bibliotecas usando módulos de mesclagem redistribuíveis, sistema autônomo assemblies são implantados sistema autônomo assemblies lado a lado compartilhados no cache de assemblies nativo (pasta WinSxS). O acesso a essa pasta requer que o aplicativo instalador ser executado por um usuário com direitos administrativos.

Se uma instalação é executada por um usuário que não tem direitos administrativos, a instalação falhará implantar o Visual C++ assemblies e o aplicativo não serão executado. Além disso, alguns produtos podem permitir a instalação em uma base por usuário, mas módulos de mesclagem instalar bibliotecas em locais compartilhados e afetam todos os usuários do sistema.Nesses dois e cenários semelhantes, a técnica com suporte é instalar sistema autônomo assemblies necessários sistema autônomo particular conjuntos lado a lado para aplicativo de um usuário específico.

Com essa técnica é suficiente para copiar uma pasta com DLLs e manifestos para assemblies dependentes em pasta local do aplicativo.Carregador do sistema operacional, ao executar o aplicativo ainda procura assemblies dependentes na pasta WinSxS primeiro; no entanto quando um assembly correspondente não for encontrado, o carregador de carrega um assembly privado desse subdiretório.

Redistribuição incorreta de bibliotecas do Visual C++ pode resultar em erros de time de execução durante a execução de um aplicativo que depende-los.Uma lista de possíveis erros e resoluções para esses erros pode ser encontrada em Solucionando problemas de C/C ++ isolados de aplicativos e assemblies side-by-lado.

Manifesto exigido

Não há suporte para redistribuir aplicativos C/C ++ que são criados sem um manifesto.Visual C++ bibliotecas não podem ser usadas por aplicativos em C/C ++ sem um manifesto de aplicativo para essas bibliotecas de vinculação. Todos os binários de C/C ++ incorporados Visual C++ 2005 é preciso incluir um manifesto descrevendo suas dependências em Visual C++ bibliotecas. Esta é a configuração padrão de projetos em Visual Studio e o comportamento padrão do vinculador criando o binário do código objeto final.

É recomendável em todos os casos o manifesto seja interna.No entanto, no caso de um arquivo EXE, o manifesto pode ser externo (esse cenário é aceito, mas não recomendado).

Aplicativos que esperam DLLs dependentes esteja presente na pasta local do aplicativo ou em uma pasta indicada por uma variável de ambiente também podem ser vulneráveis a explorações de segurança.Também é mais difícil atender a esses aplicativos após ter sido implantados.

Prefira a vinculação dinâmica sobre estático vinculação

Não é recomendado para redistribuir aplicativos C/C ++ que se vinculam estaticamente a Visual C++ bibliotecas. Muitas vezes por engano presume que vincula seu programa estaticamente a bibliotecas Visual C++ é possível melhorar significativamente o desempenho de um aplicativo.No entanto o impacto no desempenho do carregamento dinamicamente Visual C++ bibliotecas é insignificante em quase todos os casos. Além disso, a vinculação estática não permite para servir o aplicativo e suas bibliotecas dependentes, o aplicativo autor ou Microsoft.Por exemplo, considere um aplicativo que está estaticamente vinculado em uma biblioteca de determinado executando em um computador cliente com uma nova versão dessa biblioteca.O aplicativo ainda usa o código da versão anterior desta biblioteca e não se beneficiar com melhorias de biblioteca, tais sistema autônomo aprimoramentos de segurança.Os autores de aplicativos em C/C ++ altamente recomendável pensar através do cenário de prestação de serviços antes de decidir estaticamente vincular bibliotecas dependentes e usar a vinculação dinâmica sempre que possível.

Consulte também

Conceitos

Escolhendo uma estratégia de implantação

Exemplos de implantação

Outros recursos

Implantação (C++)

Visão geral de implantação do Windows Installer

Implantação do ClickOnce