2012-07-04 15 views
29

Ho creato una libreria di classi per un flusso di lavoro su una macchina locale e la costruisco. Ho spostato la soluzione completa per un server Tridion e ho cercato di registrare l'assembly nel server utilizzando lo strumento regasm.exe come di seguito:Come registrare un assembly .NET come COM?

C:\User\XYZ\Desktop\>RegAsm \codebase F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll 

ho ottenuto il seguente errore:

failed to load 'F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll ' because it is not a valid .NET Assembly.

miei dettagli del server:

64 bit, Windows Server 2008 R2 Enterprise, e installato NET Framework 4.

+0

Potrebbe essere un problema 32- vs 64 bit? Potrebbe essere il sistema remoto non ha installato .NET 4.0? – reuben

+0

sua un server a 64 bit, e .net 4 installato, e ho costruito la libreria di classi nel quadro 4 – user1428019

+0

Tu conosci il tuo barra su "\ codebase" sta andando nella direzione sbagliata, giusto? Dovrebbe essere "/ codebase" (senza virgolette). – reuben

risposta

62

Sei sicuro di avere il diritto RegAsm nel vostro percorso in quanto si sta chiamando per nome exe solo senza specificare il percorso completo? È necessario chiamare la versione corretta di RegAsm per farlo funzionare, vale a dire la versione a 32 o 64 bit di .NET 4.

Prova a specificare il percorso completo:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase F:\Workflow\WorkflowHandler\bin\debug\WorkflowHandler.dll 

o

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase F:\Workflow\WorkflowHandler\bin\debug\WorkflowHandler.dll 

Inoltre, ho notato che nel percorso dell'assembly c'erano alcuni caratteri / anziché \. Assicurati di aver inserito il percorso corretto.

+0

Grazie mille, stavo usando RegAsm.exe sbagliato, ora sono in grado di registrarmi con successo. Come posso verificare se l'assembly registerd è lì nel posto giusto? se è veramente registrato o no? – user1428019

+0

@ user1428019 Se non ha esito negativo, dovrebbe essere registrato correttamente. Se si dispone di Visual Studio registrato sul computer, è possibile provare ad aggiungere un riferimento a un componente COM e vedere se è elencato lì. Altrimenti potresti scrivere un VBScript e provare a istanziare il componente COM lì. –

+0

Grazie. Stavo usando RegAsm Framework64 su una macchina a 64 bit, quando ho usato quello a 32 bit ha funzionato. Deve essere una dll a 32 bit :) –

Problemi correlati