Sto utilizzando AppDomain.CreateInstanceFromAndUnwrap()
per creare un oggetto in un diverso AppDomain
. Non riuscivo a farlo funzionare perché continuava gettare il seguente errore di me:Problema con AppDomain.CreateInstanceFromAndUnwrap
Impossibile caricare il file o l'assembly 'comON, Version = 2.0.4960.27874, Culture = neutral, PublicKeyToken = null' o una delle le sue dipendenze. Il modulo avrebbe dovuto contenere un manifest assembly.
Tuttavia, ho scoperto che è perché tenta di caricare la mia DLL (che ha lo stesso nome del mio assembly. NET).
Questo è come io chiamo il metodo:
_script = (Script)_appDomain.CreateInstanceFromAndUnwrap(Assembly.GetExecutingAssembly().Location, "COMon.Scripting.Script");
Funziona bene fino a quando non v'è un file DLL nativa con lo stesso nome del mio assembly .NET. Perché succede quando passo il percorso completo e il nome del mio assembly .NET?
Puoi dirlo in un modo completamente diverso? Stai dicendo che c'è un'altra DLL con lo stesso nome della tua DLL gestita? Perché non basta cambiare il nome della DLL gestita? – JerKimball
La mia applicazione .NET si chiama COMon.exe, ho anche una DLL nativa che si chiama COMon.dll. Potrei semplicemente rinominare la DLL, trovo strano che cerchi di guardare nella DLL quando ho passato il percorso completo del mio eseguibile. – mnoergaard
Gotcha: è strano; Hai provato ad attivare la registrazione Fusion per vedere cosa diavolo sta provando a fare il runtime durante il caricamento dell'assembly? – JerKimball