La versione di Regsvr32.exe deve corrispondere a quella del 32-/64-bitness della DLL che si sta tentando di registrare. Il regsvr32 a 64 bit non può caricare una dll a 32 bit e viceversa.
Potrebbe essere necessario chiamare esplicitamente la versione a 32 bit di regsrv32 situata in% systemroot% \ SysWoW64 \ regsvr32.exe.
Da http://support.microsoft.com/kb/249873
Regsvr32.exe è incluso in Microsoft Internet Explorer 3.0 o versioni successive, Windows 95 OEM Service Release 2 (OSR2) o versioni successive, e Windows NT 4.0 Service Pack 5 (SP5) o versioni successive . Regsvr32.exe è installato nella cartella Sistema (Windows Me/Windows 98/Windows 95) o System32 (Windows NT/Windows XP/Windows Vista/Windows 7).
Nota Su una versione a 64 bit di un sistema operativo Windows, ci sono due versioni del file Regsv32.exe:
- La versione a 64-bit è% SystemRoot% \ System32 \ regsvr32.exe.
- La versione a 32 bit è% systemroot% \ SysWoW64 \ regsvr32.exe.
Regsvr32.exe utilizzo RegSvr32.exe ha le seguenti opzioni della riga di comando: Regsvr32 [/ u] [/ n] [/ i [: cmdline]] dllname
/u - Annulla la registrazione del server /i - Chiama DllInstall passandogli una [cmdline] facoltativa; se utilizzato con/u chiama dll uninstall /n - non chiamare DllRegisterServer; questa opzione deve essere utilizzata con/i /s - Silent; visualizza nessuna finestra di messaggio (aggiunta con Windows XP e Windows Vista) Quando si utilizza Regsvr32.exe, tenta di caricare il componente e chiamare la sua funzione DLLSelfRegister. Se questo tentativo ha esito positivo, Regsvr32.exe visualizza una finestra di dialogo che indica il successo. Se il tentativo non riesce, Regsvr32.exe restituisce un messaggio di errore. Questo può includere un codice di errore Win32.Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base: 193625 Codici di errore WinInet (da 12001 a 12156)
Questa potrebbe essere una domanda stupida, ma se si dispone di una versione sia a 32 bit che a 64 bit dell'assembly, perché si sta tentando di registrare la versione a 32 bit su un sistema operativo a 64 bit? – NotMe
Questa potrebbe essere una domanda più sciocca, ma perché c'è un errore grammaticale all'interno del messaggio di errore? Questo dovrebbe suggerire qualche situazione FU a portata di mano? – arsaKasra
Per rispondere alla prima domanda stupida: garanzia della qualità. Poiché le DLL a 32 bit sono supportate da Windows a 64 bit, dobbiamo assicurarci che la nostra DLL a 32 bit funzioni in quella situazione. –