2011-11-17 12 views
1

我發現一個問題,試圖將White功能添加到基於Selenium WebDriver的測試框架中。在添加了所有項目引用後,它編譯 沒有錯誤。但它的使用方法 Application.GetWindow(WINDOWTITLE)時拋出異常:使用White和NHibernate時與Castle.Core的版本衝突

Application application = Application.Attach(processID); 
Window downloadWindow = application.GetWindow(windowTitle); 

ex.Message =「無法加載文件或程序集「Castle.Core,版本= 1.2.0.0,文化=中性公鑰= 407dd0808d44fbdc」或它的一個依賴 找到的程序集清單定義不匹配的程序集引用。(從HRESULT異常:0x80131040)」

我下載了最新版本Castle.Core,但問題仍然存在。所以我刪除對Castle.Core最後一個版本的引用,並將NuGet引用添加到Castle.DynamicProxy 和Castle.Core 1.2.0(這個版本我用於單獨測試並且它們工作)。但是隨着Castle.Core的過時版本,NHibernate存在一個問題。這是行不通的。

這樣的問題是否有任何決定?

回答

1

也許你可以添加一個裝配在你的web.config(或app.config)中結合解決1.2.0.0當轉發當前版本返回:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" /> 
      <bindingRedirect oldVersion="1.2.0.0" newVersion="2.5.2.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

,希望他們是兼容的。我不確定publicKeyToken是否與1.2.0.0中的相同,因此您應該將其改爲反映2.5.2.0我的想法,或者如果它需要1.2.0.0令牌。

+0

我用這樣的程序集綁定創建app.config,但不幸的是它也不起作用。現在消息是「無法加載文件或程序集」Castle.Core,Version = 2.5.2.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'或它的一個依賴項。所定位的程序集清單定義與程序集引用不匹配。來自HRESULT:0x80131040)「 –

+0

那麼,你的應用程序使用了什麼版本的Castle.Core呢? – jishi

+0

對不起。現在我在項目中使用1.2.0.0。 NHibernate開始工作。但是Castle.Core依然不起作用 –