Pergunta

Eu estou vindo de um fundo Linux, mas eu gostaria de fornecer uma versão do meu software no Windows. Para os usuários para executar o meu programa, eles terão o Visual C ++ redistribuível. Eu gostaria de fornecer para eles como parte do pacote.

A minha preocupação é que não há, no futuro, será uma SP2 do Visual Studio 2008 Redistributable. Se eu fornecer-lhes SP1, ou pedir-lhes para instalá-lo eles mesmos, será que vai espancar versões posteriores do DLL que pode ser exigido por ferramentas futuras?

Existe alguma instrução para dar aos usuários para se certificar de que eles não fazem isso?

Eu certamente não quero estragar a máquina de alguém ou outras aplicações, dando-lhes instruções incorretas.

Além do exe redistributable, eu estava indo para fornecer a minha ferramenta como um arquivo zip que pode extrair em qualquer diretório que quiserem, então eu não estava pensando em proporcionar um instalador.

Foi útil?

Solução

Com o VS 2008 os tempos de execução são manifestadas e irá instalar side-by-side. Então, se a sua aplicação está ligada ao tempo de execução do SP1, ele será executado apenas com o tempo de execução SP1 (a menos que um manifesto indica explicitamente que a versão SP1 deve ser substituído).

Assim que você está protegido contra esse tipo de DLL inferno, em troca de outro (o usuário deve ter o redistribuível SP1 instalado).

Outras dicas

Por que você não estaticamente link e evitar este problema completamente?

redistributables A VC ++ são destinadas a ser instaladas lado a lado e podem coexistir pacificamente.

Aqui está uma página do documentação do MSDN sobre o VC ++ redistributables . Essa seção inteira Implantação da MSDN deve ser instrutivo.

Como as pessoas diziam, eles estão instalados lado a lado. Se você usar o tipo de projeto de instalação do Visual Studio, há uma opção para incluir o redistribuível CRT, e vai configurá-lo corretamente para que você possa ser instalado e desinstalado com a sua aplicação.

Em particular, eles estão instalados no diretório \ Windows \ WinSxS.

Para se ter uma intuição de como funciona o side-by-side, faça

cd %systemroot%\winsxs
dir /S msvc*.dll

E você vai ver todas as versões pessoas têm colocado em sua máquina.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top