2012-01-04 39 views
0

我正在創建一個新的appdomain用於加載一些庫,它似乎有問題找到一些文件。我正在使用事件定位給出全名的系統組合

ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args) 

在其中一個事件中,該事件是在程序集要求下提出的。

System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 

這就是所有需要的裝配要求。

我的問題給出了全名,我怎樣才能得到實際加載庫的位置?如果這也不是必要的,並且有另一種方法來加載庫,我也會很感激。

PS:主要應用程序是一個.net 4.0應用程序。

回答

1

您應該嘗試Assembly.Load(String)方法。它應該工作,在一般情況下。

+0

它似乎工作正常。我將行改爲 'var assm = Assembly.ReflectionOnlyLoad(args.Name); 'return assm; 現在的問題是,它正在爲其中一個庫引發一些異常。 '繼承安全規則違反類型:'System.Web.Mvc.CompareAttribute'。派生類型必須匹配基類型的安全可訪問性或者不易訪問。# – ritcoder 2012-01-04 20:05:23

+0

程序集可能已經使用不同的安全設置加載到AppDomain中。在這種情況下,您可以嘗試檢查AppDomain.GetAssemblies()並比較全名。 – 2012-01-04 20:50:35

+0

沒有工作。我得到了同樣的錯誤。從我設置的斷點看來,如果程序集已經被加載,則不會引發事件。 – ritcoder 2012-01-04 23:36:55