在一個項目中使用VS2010,C#4.0,NHibernate和NUnit進行數據庫測試時,我遇到了一個奇怪的問題。當我運行我的測試時,nunit-agent.exe崩潰沒有明顯的原因..因爲我已經然後發現,當我調試我的測試中,我得到的TestFixtureSetup方法以下異常:VS2010 + NUnit無法加載程序集?
TypeInitializationException:類型 初始化爲 「NHibernate.ByteCode.Castle.ProxyFactory」 扔一個例外。 無法加載文件或程序集 'Castle.DynamicProxy2, Version = 2.1.0.0,Culture = neutral, PublicKeyToken = 407dd0808d44fbdc'或 其依賴項之一。位於 程序集清單定義 與程序集引用不匹配。 (從HRESULT異常: 0x80131040) 「:」 Castle.DynamicProxy2, 版本= 2.1.0.0,文化=中立, 公鑰= 407dd0808d44fbdc
現在,在我看來,它的尋找是相同的到它找到的那個?
我已經doublechecked,並在測試項目中引用程序集..我也嘗試讀取參考,但無濟於事。任何想法?
UPDATE2:我試圖改變目標框架.NET 3.5我的所有項目,現在所有測試失敗,上述錯誤..
UPDATE:一些測試工作,別人不..我有一個客戶類:
public class Customer : IEntity<string>
{
private readonly string id;
public virtual string Id
{
get { return id; }
}
public virtual string Name { get; set; }
public virtual Address Address { get; set; }
}
當測試運行完全正常的。但是我的產品類測試:
public class Product : IEntity<string>
{
private readonly string id;
public virtual string Name { get; set; }
public virtual decimal Price { get; set; }
public virtual string Id
{
get { return Id; }
}
}
不起作用(我從之前得到的例外)..而有趣的是,這兩個類的測試使用完全相同的基類,其中包含所有的數據庫訪問代碼..
什麼.net版本是你的項目?什麼.net版本是DP2? – Simon 2010-08-11 08:17:02
我的項目是C#4.0,我從Castle Project下載了最新的DynamicProxy dll ..據我所知,它是用於.net 2.0運行時.. – 2010-08-11 09:09:26
我們遇到了一些模糊的問題以及.NET4.0項目(實際上,.NET框架版本)引用了針對舊版本框架的程序集。 我們沒有花太多時間尋找解決方案;我們現在決定暫時不使用.NET 4.0。 (雖然這不會阻止我們使用C#4.0)。 – 2010-08-11 09:24:21