標籤:source att framework 策略 有關詳細資料 msdn byte config images
錯誤現象:
進行外掛程式讀取時出現錯誤:“嘗試從一個網路位置載入程式集,在早期版本的 .NET Framework 中,這會導致對該程式集進行沙箱處理。此發行版的 .NET Framework 預設情況下不啟用 CAS 原則,因此,此載入可能會很危險。如果此載入不是要對程式集進行沙箱處理,請啟用 loadFromRemoteSources 開關。有關詳細資料,請參見 http://go.microsoft.com/fwlink/?LinkId=155569。”
錯誤原因:由於在項目中引用了外部dll,DotNET的安全機制阻止載入一個本地網或互連網上的assembly。
方法1,參考https://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx進行解決,配置app.config就可以完<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/> </runtime></configuration>
方法2,Assembly類有一個靜態函數UnsafeLoadFrom,這個函數在載入一個assembly的時候,不會進行一些安全檢查。載入dll語句修改為:
string dll = @"Z:\test.dll";
Assembly a = Assembly.UnsafeLoadFrom(dll);
方法3, Assembly的load方法有很多的重載,可以使用其中的一個參數為byte[]的load函數。代碼如下:
string dll = @"Z:\test.dll"; ;
byte[] assemblyBuffer = File.ReadAllBytes(dll);
Assembly a = Assembly.Load(assemblyBuffer);
【原文http://blog.csdn.net/studying/article/details/6663627】
C#在使用Assembly載入程式集時失敗