.net vb.net .net-4.0 code-access-security

.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.

Novedades de la discusión Sysinternals Super User