2011-11-25 22 views
7

Mam poniższy kod w aplikacji .Net 4 WinForms, który ładuje zespół. Wszystkie pliki znajdują się w C :. Istnieje wiele bibliotek DLL, który działa dobrze, ale dwa błąd z następujących czynności:loadFromRemoteSources błąd przy użyciu Assembly.LoadFrom

Próbowano załadować zespół z lokalizacji sieciowej, która spowodowała montaż do piaskownicy w poprzednich wersjach .NET Struktura. Ta wersja oprogramowania .NET Framework domyślnie nie włącza zasad CAS, więc to obciążenie może być niebezpieczne. Jeśli to obciążenie nie jest przeznaczone do piaskowania zespołu , należy włączyć przełącznik loadFromRemoteSources. Aby uzyskać więcej informacji, zobacz http://go.microsoft.com/fwlink/?LinkId=155569.

To tylko wydaje się być problemem na niektórych komputerach

Oto kod:

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

Sprawdź tę odpowiedź, może rozwiązać swój problem elegancko [http://stackoverflow.com/a/33755170/1127429](http://stackoverflow.com/a/33755170/1127429) – GMG

Odpowiedz

20

Cóż okazuje się, że problem jest, ponieważ plik został ewentualnie pobrać z Internetu.

Aby rozwiązać Right Click -> Właściwości -> Odblokuj

enter image description here

+0

Rozwiązało to mój problem, gdy dostałem ten błąd w projektancie w Visual Studio. –

2

W ten sposób udało mi się zmusić go do pracy, bez uciekania się do jakiejkolwiek kliknięcie na stronie klienta:

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

Należy pamiętać, że parametr CreateDomain with Evidence zawiera informację, że "Ta metoda używa zasad CAS, która została przestarzała przez .NET Framework." wiadomość.

Alternatywnie, można skonfigurować odpowiedni piaskownicy:

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

1

Piggybacking na Jona, miałem ten problem, ale z wieloma zespołami w różnych folderach. Pobrałem strumienie z Sysinternals, aby masowo odblokować pliki. Znalazłem dobrą dyskusję na temat Superużytkownika na ten temat.

Streams from Sysinternals Super User discussion

Powiązane problemy