Domanda

Stavo cercando di capire perché una build di debug soffiava con la "microsoft.vc80.debugcrt assembly dipendente non è stato trovato" errore di evento.

Dopo l'eliminazione di tutto (tutto ciò che non cpp o .h) e ricreare la soluzione -. Ho ancora avuto il problema

Una ricerca di Google è stato sterile e un re-installazione di VS non ha prodotto alcun cambiamento.

Ho avuto le DLL in C:. \ WINDOWS \ WinSxS \ x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c

Ho aperto la \ debug \ file .exe.intermediate.manifest e aveva 2 voci (dependentAssembly):
    1 °: name = versione 'Microsoft.VC80.DebugCRT' = '8.0.50608.0'
    2 °: name = versione 'Microsoft.VC80.DebugCRT' = '8.0.50727.762'

Se cancello uno e cambiare l'altra per  name = versione 'Microsoft.VC80.DebugCRT' = '8.0.50727.42'

posso avere una build che si avvia.

Certo ho avuto VS2008 installato - ma che cosa è il controllo delle versioni? o Come posso ottenere la giusta versione di debug dll a "bastone".

VS2008 è stata de-installato tramite il pannello di controllo.

EDIT:. Niente nel registro Trovato se DebugCRT è cercato
      il percorso dell'ambiente indica le cartelle VS8.
      C'è solo 1 cartella DebugCRT nella cartella c: \ windows \ winsxs \ politiche cartella
         (8.0.50.727.42)
      C: \ windows \ winsxs \ manifesta cartella ha solo la versione .42 di .cat e manifest
      Il file manifest (nella cartella manifesto sopra) ha version = "8.0.50727.42"

Precisazione: il file manifesto ha 2 voci "dependentAssembly" ognuna con diverse versioni e non il .42. Posso cancellare 1 ingresso e cambiare la versione dall'altra per abbinare il 0,42 per ottenere una build di debug che inizia.

EDIT2: Sto anche utilizzando spinta e dentro le DLL c'è il 0,762 versione

È stato utile?

Soluzione

La versione è stata ripresa da dalle DLL Boost che erano un download, versione pre-compilata di Boost. Una volta che le librerie sono stati ri-compilato (e ri-installato) una ri-costruzione della soluzione ha prodotto un manifesto con una singola versione e il programma collegato e corse.

Quindi -Controllare le librerie e le DLL che vengono importati nella soluzione per la versione utilizzata.

Altri suggerimenti

VS 2008 è VC90 non VC80, così che non è parte del problema. La relazione tra montaggio e SxS-caricato Assenbly manifesta-richiesto si trova in C: \ WINDOWS \ WinSxS \ Policies. IIRC, "8.0.50608.0" viene generato da VS2005 pre-SP1. È sbagliato, e avrebbe dovuto essere 8.0.50727.42, ma questo e 'colto dalla politica.

Non sono sicuro di come si sta ottenendo due manifesta. Quali sono le tue impostazioni manifeste?

Io suggerirei di ricostruire Boost in un ambiente particolare. Inoltre, è possibile farla finita con il Side by Side assemblee del tutto collegando il tubo catodico staticamente ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top