.net - Error de loadFromRemoteSources con Assembly.LoadFrom
vb.net .net-4.0 (3)
Bueno, resulta que el problema es porque el archivo posiblemente se descargó de Internet.
Para arreglar el clic derecho -> Propiedades -> Desbloquear
Tengo el siguiente código en una aplicación .Net 4 Winforms que carga un ensamblaje. Todos los archivos están en C :. Hay numerosas DLL que funcionan bien pero dos errores con lo siguiente:
Se intentó cargar un ensamblaje desde una ubicación de red que habría provocado que el ensamblaje se guardara en la arena en versiones anteriores de .NET Framework. Esta versión de .NET Framework no habilita la política de CAS por defecto, por lo que esta carga puede ser peligrosa. Si esta carga no está destinada a la caja de arena del conjunto, habilite el modificador loadFromRemoteSources. Consulte http://go.microsoft.com/fwlink/?LinkId=155569 para obtener más información.
Esto solo parece ser un problema en algunas PC
Aquí está el código:
strDLLs = Directory.GetFileSystemEntries(strPath, "*.dll")
For intIndex = 0 To strDLLs.Length - 1
Try
objDLL = [Assembly].LoadFrom(strDLLs(intIndex))
ExamineAssembly(objDLL, strInterface, Plugins)
Catch e As Exception
'' MsgBox("Error whilst loading Library: " & strDLLs(intIndex) & ". Reported Error was:" & vbCrLf & e.ToString)
End Try
Next
Así es como logré que funcionara, sin recurrir a ningún clic en el lado del cliente:
var appDomain = AppDomain.CreateDomain(assemblyName);
var assembly = appDomain.Load(File.ReadAllBytes(assemblyName));
Tenga en cuenta que si usa el parámetro CreateDomain with Evidence, obtendrá el mensaje ''Este método usa la política CAS, que ha sido obsoleta por .NET Framework''. mensaje.
Alternativamente, puedes configurar un sandbox apropiado:
http://msdn.microsoft.com/en-us/library/bb763046.aspx http://blogs.msdn.com/b/shawnfa/archive/2005/08/08/449050.aspx
Piggybacking en Jon, tuve este problema pero con muchos ensambles en muchas carpetas diferentes. Descargué Streams de Sysinternals para desbloquear los archivos en masa. Encontré una buena discusión sobre Superusuario sobre este tema.