2011-03-27 68 views
3

所以我有一個問題,像我看到其他海報使用的NuGet安裝FluentNhibernate後出現:添加-BindingRedirect未解決的NuGet VS問題

錯誤

Could not load file or assembly 'NHibernate, Version=3.0.0.2001, Culture=neutral, 
PublicKeyToken=aa95f207798dfdb4' or one of its dependencies. The located assembly's 
manifest definition does not match the assembly reference. (Exception from HRESULT: 
0x80131040) 

我看到StackOverflow上答案和其他博客的答案是:

Add-BindingRedirect 

但是,這並沒有解決我的問題和運行該命令的所有結果我S:

PM> Add-BindingRedirect 

Name          OldVersion              NewVersion              
----          ----------              ----------              
NHibernate        0.0.0.0-3.0.0.4000            3.0.0.4000 

當我從安裝的NuGet功能NHibernate,它說,它依賴是NHibernate的3.0.0.2001但安裝NHibernate的3.0.0.4000

我在做什麼錯?

UPDATE

我看到它添加以下部分中的節點:

<dependentAssembly> 
    <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.4000" newVersion="3.0.0.4000" /> 
    </dependentAssembly> 

不過,我還是得到同樣的錯誤。這看起來不正確。如果Fluent需要3.0.0.2001和NHibernate 3.0.0.4000安裝,這個綁定重定向,在我看來是不正確的。

要儘可能具體。我只是使用NuGet在我的Web Project和一個C#庫項目中安裝Fluent Nhibernate進行測試。然後使用NUnit進行測試,繼續給我這個錯誤。

+2

您是否將綁定重定向添加到正確的項目? – davidfowl 2011-03-27 17:03:41

回答

1

Add-BindingRedirect是正確的命令運行,你得到的輸出是預期的。運行後,您應該在web.config(或app.config)中看到一些綁定重定向條目。你能證實嗎?

即使FluentNH要求使用較早版本的NHibernate,也可以加載程序集。

如果這不適合你,請在你的問題中包含更多關於你在做什麼的細節。例如什麼是導致看到您報告的錯誤的完整步驟序列(從項目創建開始)。

+0

我用這個信息更新了我的問題。 – pghtech 2011-03-28 22:02:08

+0

因此,您在NUnit期間看到此錯誤,但在您的網站中看不到?我想你需要創建一個nunit.exe.config並添加相同的綁定重定向條目以影響測試運行。 – 2011-03-29 07:15:38

0

我對運行MSpec測試的不同軟件包有同樣的問題。

對我來說,解決方案是手動將app.config文件添加到每個Web項目中,使用與Web.config文件中相同的綁定重定向。

Add-BindingRedirect命令已將條目正確添加到Web.config文件中,但顯然測試運行程序僅評估生成的Bla.Bla.dll.config文件。

0

聽起來很愚蠢,但檢查你的源文件和你的包源代碼,並檢查那裏沒有對舊版本的引用 - 如果有刪除所有版本並通過包管理器控制檯重新下載你想要的版本。

編輯:確保您檢查所有文件,因爲引用和綁定的工作方式可能會變得非常混亂,並且任何文件中的引用都可能導致綁定重定向或仍然出現錯誤版本。

0

我有同樣的問題,我的web服務正在運行,但BindingRedirect不能用於我的測試。

的解決方案是通過外接BindingRedirect命令添加的配置從我的「project'.config文件複製到計算機

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" /> 
     <bindingRedirect newVersion="3.3.1.4000" oldVersion="0.0.0.0-3.3.1.4000" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

的machine.config文件一旦我複製了我的測試工作開始