2010-10-26 24 views
31

Sto tentando di eseguire lo strumento this per convertire un progetto Visual C++ in makefile. Il progetto che sto cercando di convertire progetto è scritto in VS2008, quindi sto usando un riferimento a Microsoft.VisualStudio.VCProjectEngine.dll dalla versione 9.Errore 80040154 (eccezione di classe non registrata) durante l'inizializzazione di VCProjectEngineObject (Microsoft.VisualStudio.VCProjectEngine.dll)

Fallisce in questa linea:

VCProjectEngine vcprojEngine = new VCProjectEngineObject(); 

con la seguente eccezione:

Retrieving the COM class factory for component with CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Quando ha provato a registrare Vcprojectengine.dll con regsvr32, ho ottenuto un errore che il punto di ingresso DllRegisterServer non è stato trovato.

Qualche idea ??

Grazie in anticipo.

risposta

61

Non ci sono molti buoni motivi per non riuscire, specialmente per il passo regsvr32. Esegui dumpbin/esporta su quella dll. Se non vedi DllRegisterServer allora hai un'installazione corrotta. Dovrebbe avere più effetti collaterali, non sarebbe più possibile creare progetti C/C++.

Una modalità di errore standard è in esecuzione su un sistema operativo a 64 bit. Questo è un codice non gestito a 32 bit, si otterrebbe l'eccezione 'class not not registered'. Progetto + Proprietà, scheda Costruisci, modifica Target piattaforma su x86.

+8

La piattaforma di destinazione x86 era il problema. Grazie! – rkellerm

+2

Ho appena eseguito il problema a 64 bit. Grazie mille! – jacknad

+0

@Hans Passant altri pensieri su questo? Sto costruendo per la piattaforma x86 ma sto ancora ricevendo un errore per un interop VB6 COM. Il mio computer di costruzione è il server di Widows 2008 R2 –

Problemi correlati