我一直在尝试找到与Visual Studio 2008合作的尖锐体系结构版本,并使用了NHIBERNATE 3,但没有成功。我想使用NHIBERNATE版本3的查询API。我可以找到的最新构建是Sharp-Architecture-1.6.0.0.0.0.0.-Templify-package.zip,与Visual Studio 2008,MVC 2和NHIBERNATE相吻合。较新版本的Sharp Architecture仅与Visual Studio 2010兼容。我试图进行自定义的Sharp Architecture:

我更改了“ Sharparchitecture 1.6完整源”项目中的参考...:

  • nhibernate.Validator至版本1.3.0.4000
  • NHIBERNATE至3.1.0.4000版本
  • nhibernate.bytecode.castle到版本3.1.0.4000
  • Fluentnhibrenate至版本1.2.0.694
  • Castle.Core to版本= 2.5.2.0

...通过用项目bin目录中的新DLL替换旧DLL。然后,我运行了clicktobuild.bat(位于下载的夏普架构zip文件base目录中)以构建解决方案。构建成功并通过了所有测试。然后,我用我刚刚建造的新的Sharp Architection代替了自己的项目中的所有DLL。我的项目确实编译了,但是当我运行它时,sharparch.data nhibernate nhibernateSession.cs抛出以下例外:

无法加载文件或汇编'Castle.Core,版本= 2.5.1.0,culture =中性,publicKeyToken = 407DD0808D44FBDC'或其依赖项之一。位置的组件的清单定义与汇编引用不符。 (Hresult的例外:0x80131040)

我尝试在我的web.config中使用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(如果需要的话,如果需要最新的)。

因此,这会有点麻烦,但可以确定可管理。

注意:不要忘记,诸如Fluent Nhibernate之类的项目也应更新以使用NH 3。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top