【问题标题】:NHibernate.Caches.SysCache version issues with Nhibernate 2.1.0 branchNHibernate 2.1.0 分支的 NHibernate.Caches.SysCache 版本问题
【发布时间】:2009-10-30 21:57:50
【问题描述】:

我们已经对 NH 2.0.1 进行了一些小的更改,并且效果很好。我们升级到 2.1.0 时遇到了针对不同 NH 构建的 NHibernate.Caches.SysCache 的 dll 问题。我的主要问题是如何最好地处理这个问题?我可以使用某种类型的程序集映射,还是有可以用来构建的源代码?

这是错误: “无法加载文件或程序集 'NHibernate, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)” .

如果我们将 web.config 中的引用注释掉,则不然。

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    把它放在你的 web.config 中:

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

    通过将X.X.X.X 替换为您为构建提供的版本。

    备注:如果新版本的程序集没有使用相同的密钥签名,绑定重定向将不起作用。如果是这种情况,您别无选择,只能针对您的自定义 NHibernate 构建重新编译 NHibernate.Caches.SysCache


    更新:

    似乎private key 包含在存储库中,所以你应该好好去:-)

    【讨论】:

    • 不知道我必须用私钥签名。这就是我所需要的,干得好。
    【解决方案2】:

    有一个基于 NH 2.1 构建的新版本的 NH 缓存可用: http://nhibernate.info/blog/2009/07/19/nhibernate-caches-2-1-0ga.html

    【讨论】:

    • 私钥签名确实是我在 2.1 中所需要的,但对于 2.1.1,我使用了上面列出的 Darin 方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多