Pergunta

Estou desenvolvendo em um ambiente que é bastante afectada, mas os desenvolvedores também têm um controlo apertado sobre.

VCRedist_x86.exe - A 4Mb redistributable - não é divertido (quatro horas para transferência). Eu realmente prefiro apenas para redistribuir MFC90.dll, msvcm90.dll, msvcp90.dll e msvcr90.dll - que é mais como 2Mb. No entanto, Redistribuir o Visual C Arquivos ++ diz:

Não é suportado para redistribuir aplicações C / C ++ que são construídos sem um manifesto. bibliotecas Visual C ++ não podem ser usados ??por aplicações C / C ++ sem um manifesto de ligação a aplicação a essas bibliotecas. Para mais informações, consulte Escolhendo um método de implantação .

Meu plano original de copiar as DLLs no diretório de trabalho do programa não parece trabalho neste admirável mundo novo dos manifestos.

O meu próximo palpite é bodge-se as entradas de registo necessárias para preencher os arquivos para o diretório WinSxS e preenchê-lo eu mesmo (em vez de usar o programa 4 meg).

[editar] O software é atualizado com freqüência, por isso DLLs são fortemente preferiu vinculação estática. [/ Edit]

Como posso com sucesso distribuir os arquivos necessários, mas manter o baixo sobrecarga?

Foi útil?

Solução

Nós usamos esta: COMO FAZER: Implantar VC2008 aplicativos sem instalar vcredist_x86.exe

Essencialmente

  • Não incorporar um manifesto em seus arquivos exe.
  • Copie o ++ DLLs C e seus manifestos para o diretório do aplicativo.
  • Remova o "publicKeyToken" de todos os manifestos (seu e Microsoft).
  • Se necessário, altere a informação da versão em arquivos de manifesto de seu aplicativo para combinar os arquivos de manifesto da Microsoft (ou vice-versa)

Outras dicas

[Eu sou o atual mantenedor SxS no Microsoft]

Gostaria de sugerir contra remover o atributo publicKeyToken de manifestos. implantação privada das DLLs vai funcionar muito bem com esse atributo deixada intacta. No entanto, removê-lo irá impedir a sua aplicação beneficiem de atualizações de segurança deve haver uma versão mais recente do CRT instalado centralmente na máquina de destino, como as dependências deixarão de corresponder-se.

Assim, para resumir: é seguro, para inserir o manifesto, com o padrão. Copie o CRT manifesto + arquivos DLL diretamente no diretório do seu executável, sem edições. É isso aí. Win2k compatível +.

Precisar / MT (multithread) para a "biblioteca de tempo de execução" configuração na página de propriedades do compilador. Este link estaticamente contra a biblioteca de tempo de execução para que você não tem que instalar o redistribuível.

Instale-los como conjuntos privados. Veja aqui:

http://msdn.microsoft.com/en-us/library /ms235291.aspx

Note que, se você não precisa de todas as DLLs desde que você pode modificar os arquivos de manifesto para referência apenas o que você precisa.

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