簡體   English   中英

有沒有辦法使Nhibernate 3與使用Visual Studio 2008的Sharp Architecture一起使用?

[英]Is there a way to get Nhibernate 3 to work with Sharp Architecture using Visual Studio 2008?

我一直在嘗試找到與Visual Studio 2008一起使用並使用NHibernate 3的Sharp Architecture版本,但一直沒有成功。 我想使用NHibernate 3版中的QueryOver API。我可以找到的最新內部版本是sharp-architecture-1.6.0.0-templify-package.zip,它與Visual Studio 2008,MVC 2和NHibernate 2兼容。較新版本的Sharp Architecture僅與Visual Studio 2010兼容。我嘗試制作Sharp Architecture的自定義版本:

我在“ SharpArchitecture 1.6 Full Source”項目中更改了引用:

  • 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版本= 2.5.2.0

...通過在項目bin目錄中用新的dll替換舊的dll。 然后,我運行ClickToBuild.bat(位於下載的Sharp Architecture zip文件基本目錄中)來構建解決方案。 構建成功,所有測試通過。 然后,我用自己剛剛構建的新Sharp架構替換了自己項目中的所有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>

但這仍然行不通。

我在正確的軌道上嗎? 我還能做些什么才能使其正常工作?

我已經做到了。 您只需要更改S#項目中的引用,因為關於S#的NH 2.1到3.0(如果需要最新版本,則為3.1)沒有什么重大變化。

這樣會有點麻煩,但是絕對可以管理。

注意:不要忘記,像Fluent NHibernate這樣的項目也應該更新為使用NH 3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM