Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法让Nhibernate 3使用VisualStudio2008与Sharp架构一起工作?_C#_Visual Studio 2008_Nhibernate_S#arp Architecture_Queryover - Fatal编程技术网

C# 有没有办法让Nhibernate 3使用VisualStudio2008与Sharp架构一起工作?

C# 有没有办法让Nhibernate 3使用VisualStudio2008与Sharp架构一起工作?,c#,visual-studio-2008,nhibernate,s#arp-architecture,queryover,C#,Visual Studio 2008,Nhibernate,S#arp Architecture,Queryover,我一直在试图找到一个版本的夏普架构,它与VisualStudio2008一起工作,并使用NHibernate3,但一直没有成功。我想使用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兼容。我试图定制

我一直在试图找到一个版本的夏普架构,它与VisualStudio2008一起工作,并使用NHibernate3,但一直没有成功。我想使用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兼容。我试图定制夏普建筑:

我更改了“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到版本=2.5.2.0
…通过将项目bin目录中的旧DLL替换为新DLL。然后我运行ClickToBuild.bat(位于下载的Sharp Architecture zip文件基目录中)来构建解决方案。构建成功,所有测试都通过了。然后我用我刚刚构建的新的Sharp架构替换了我自己项目中的所有DLL。我的项目是编译的,但当我运行它时,SharpArch.Data\NHibernate\NHibernateSession.cs抛出以下异常:

无法加载文件或程序集“Castle.Core,Version=2.5.1.0,Culture=neutral,PublicKeyToken=407dd0808d44fbdc”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)

我尝试在我的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#,NH2.1到3.0(如果您想要最新的,则为3.1)之间没有突破性的更改

这样会有点麻烦,但肯定是可以管理的


注意:不要忘记像Fluent NHibernate这样的项目也应该更新为使用NH3。

我已经这样做了。您只需更改S#项目中的引用,因为关于S#,NH2.1到3.0(如果您想要最新的,则为3.1)之间没有突破性的更改

这样会有点麻烦,但肯定是可以管理的

注意:不要忘记像Fluent NHibernate这样的项目也应该更新为使用NH3