2012-04-10 14 views
14

Abbiamo DLL personalizzate che non sono incluse nel nostro file di installazione iniziale. Sono caricati in fase di esecuzione. Questo processo ha funzionato correttamente durante l'utilizzo di .NET 2.0, ma stiamo ricevendo il messaggio di errore "Il membro invocato non è supportato in un assembly dinamico" ora che stiamo utilizzando .NET 4.0.Caricamento di file DLL plug-in, "Il membro richiamato non è supportato in un assembly dinamico."

try 
{ 
    assem = Assembly.LoadFrom(fi.FullName); //fi is FileSystemInfo 
} 
catch (FileLoadException) {} 
catch (BadImageFormatException) {} 
catch (System.Security.SecurityException) {} 
catch (ArgumentException) {} 
catch (PathTooLongException) {} 
+2

Stacktrace per favore. – leppie

risposta

8

Per me la questione non è stata incorporare il licenza per una dll Aspose: http://www.aspose.com/community/forums/thread/423874/initializing-the-license-file.aspx

Il loro codice inietta assemblaggi dinamici quando non viene rilevata una licenza, causando loro DLL a fallire, così come una serie di altri codici che non sono compatibili con gli assembly dinamici.

Non sono sicuro se si tratta di un metodo di attivazione/attivazione comune per garantire l'uso registrato con DLL di terze parti, quindi lo posterò qui per google se lo è.

5

Questo errore si verifica perché Assembly.Load non può essere chiamato su assiemi dinamici. È necessario filtrare gli assembly dinamici prima di utilizzarli.

var assemblies AppDomain.CurrentDomain.GetAssemblies().Where(p => !p.IsDynamic);