1

我一直在試圖找到一個適用於Visual Studio 2008並使用NHibernate 3的夏普體系結構的版本,但一直沒有成功。我想使用NHibernate版本3中的QueryOver API。我可以找到的最新版本是sharp-architecture-1.6.0.0-templify-package.zip,它與Visual Studio 2008,MVC 2和NHibernate 2兼容。所有夏普建築較新的版本只與Visual Studio 2010兼容我試圖使夏普建築的自定義構建:有沒有辦法讓Nhibernate 3與使用Visual Studio 2008的Sharp架構一起工作?

我在「SharpArchitecture 1.6完整源」項目改變了引用...:

  • NHibernate.Validator到版本1.3.0.4000
  • NHibernate到版本3.1.0.4000
  • 個NHibernate.ByteCode.Castle到3.1.0.4000版本
  • FluentNHibernate到1.2.0.694版本
  • Castle.Core到Version =通過用新的替換舊的DLL 2.5.2.0

...在項目的bin目錄下。然後我運行ClickToBuild.bat(位於下載的Sharp Architecture zip文件基礎目錄中)來構建解決方案。構建成功並通過了所有測試。然後,我用我剛剛構建的新型夏普架構替換了我自己項目中的所有dll。我的項目做編譯,但是當我運行它,SharpArch.Data \ NHibernate的\ NHibernateSession.cs拋出以下異常:

無法加載文件或程序集「Castle.Core,版本= 2.5.1.0,文化=中立,PublicKeyToken = 407dd0808d44fbdc'或其依賴項之一。定位的程序集清單定義與程序集引用不匹配。 (異常來自HRESULT:0x80131040)

我想在我的web.config使用Castle.Core一個bindingRedirect:

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

但仍然沒有奏效。

我在正確的軌道上嗎?我還能做些什麼才能使其發揮作用?

回答

1

我已經做到了。您只需更改S#項目中的引用,因爲對於S#而言,從NH 2.1到3.0(或3.1,如果您想要最近一次)沒有發生重大變化。

因此,這將是一個有點麻煩,但不可管理。

注意:不要忘了像功能NHibernate項目也應更新爲使用NH 3

+0

我已經更新了我的問題。 – Stu 2011-04-05 07:26:58

+0

我使用了nugets,它更新了我所有的dll – Xenon 2012-10-26 10:57:24

相關問題