Pergunta

Eu estava tentando descobrir por que uma compilação de depuração estava explodindo com o "microsoft.vc80.debugcrt assembly dependente não pôde ser encontrado" erro de evento.

Depois de apagar tudo (qualquer coisa não .cpp ou .h) e recriar a solução -. Eu ainda tinha o problema

Um google busca foi infrutífera e uma re-instalação do VS não produziu qualquer alteração.

Eu tive as DLLs em C:. \ WINDOWS \ WinSxS \ x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c

Eu abri a \ debug \ arquivo .exe.intermediate.manifest e tinha 2 entradas (dependentAssembly):
1º: name = versão 'Microsoft.VC80.DebugCRT' = '8.0.50608.0'
2º: name = versão 'Microsoft.VC80.DebugCRT' = '8.0.50727.762'

Se eu excluir um e mudar o outro para name = versão 'Microsoft.VC80.DebugCRT' = '8.0.50727.42'

posso obter uma compilação que será iniciado.

Concedido eu tinha VS2008 instalado - mas o que está controlando as versões? ou Como posso obter a versão dll depuração direito de "pau".

VS2008 foi de-instalado através do painel de controlo.

EDIT: Encontrado nada no registro se DebugCRT é procurado
. caminho do ambiente aponta para as pastas VS8.
Há apenas 1 pasta DebugCRT no c: \ windows políticas \ WinSxS \ pasta
(8.0.50.727.42)
O c: \ windows \ winsxs \ manifesta pasta só tem a versão .42 de .cat e manifest
O arquivo manifest (em cima pasta manifesto) tem a versão = "8.0.50727.42"

Esclarecimento: o arquivo de manifesto tem 2 entradas "dependentAssembly" cada um com diferentes versões e não a .42. Posso excluir uma entrada e alterar a versão do outro para combinar com o .42 para obter uma compilação de depuração que inicia.

EDIT2: Eu também estou usando boost e dentro das DLLs existe a 0,762 versão

Foi útil?

Solução

A versão foi pego por das DLLs impulso que eram um download, a versão pré-compilada do Boost. Uma vez que as bibliotecas eram re-compilado (e re-instalado) a re-construção da solução produziu um manifesto com uma única versão eo programa vinculado e correu.

Assim -Verifique as bibliotecas e DLLs que são importados para a solução para a versão utilizada.

Outras dicas

VS 2008 é VC90 não VC80, de modo que não é parte do problema. A relação entre manifestam-solicitado montagem e SxS-carregado assenbly é encontrado em C: \ WINDOWS \ WinSxS \ Regulamentos. IIRC, "8.0.50608.0" é gerado pelo VS2005 pré-SP1. É errado, e deveria ter sido 8.0.50727.42, mas esta é pego pela política.

Eu não sei como você está recebendo dois manifestos. Quais são as suas definições de manifesto?

Eu sugiro reconstrução impulso no seu ambiente específico. Além disso, você poderia acabar com o Side by montagens laterais completamente ligando o CRT estaticamente ...

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