2011-11-25 28 views
7

Tôi có mã bên dưới trong ứng dụng .Net 4 Winforms tải một assembly. Tất cả các tệp đều có trên C :. Có rất nhiều của DLL mà làm việc tốt nhưng hai lỗi như sau:loadFromRemoteSources lỗi khi sử dụng Assembly.LoadFrom

Một cố gắng đã được thực hiện để nạp một assembly từ một vị trí mạng mà sẽ gây ra hội đồng để được sandboxed trong các phiên bản trước của .NET Khung. Phiên bản này của Khuôn khổ .NET không kích hoạt chính sách CAS theo mặc định, vì vậy, tải trọng này có thể nguy hiểm. Nếu tải này không nhằm để sandbox lắp ráp , hãy bật khóa chuyển loadFromRemoteSources. Xem http://go.microsoft.com/fwlink/?LinkId=155569 để biết thêm thông tin.

này dường như chỉ là một vấn đề trên một số máy tính

Đây là mã:

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 
+0

Kiểm tra câu trả lời này, có thể giải quyết vấn đề của bạn thanh lịch [http://stackoverflow.com/a/33755170/1127429](http://stackoverflow.com/a/33755170/1127429) – GMG

Trả lời

20

Vâng Hóa ra vấn đề này là do các tập tin đã có thể tải về từ internet.

Để khắc phục Right Click -> Properties -> Unblock

enter image description here

+0

Điều này giải quyết vấn đề của tôi khi tôi nhận được lỗi này trong các nhà thiết kế trong Visual Studio. –

2

Đây là cách tôi quản lý để có được nó để làm việc, mà không cần đến bất kỳ nhấp đứng về phía khách hàng:

var appDomain = AppDomain.CreateDomain(assemblyName); 
var assembly = appDomain.Load(File.ReadAllBytes(assemblyName)); 

Hãy ghi nhớ nếu bạn CreateDomain với tham số Evidence, bạn sẽ nhận được 'Phương pháp này sử dụng chính sách CAS, mà đã bị lỗi thời bởi .NET Framework.' thông điệp.

Ngoài ra, bạn có thể thiết lập một sandbox thích hợp:

http://msdn.microsoft.com/en-us/library/bb763046.aspx http://blogs.msdn.com/b/shawnfa/archive/2005/08/08/449050.aspx

1

cõng trên Jon, tôi có vấn đề này nhưng với rất nhiều hội đồng trong nhiều thư mục khác nhau. Tôi đã tải xuống Luồng từ Sysinternals để bỏ chặn các tệp này. Tôi đã tìm thấy một cuộc thảo luận tốt về Super User về chủ đề này.

Streams from Sysinternals Super User discussion

Các vấn đề liên quan