使用 White 和 NHibernate 时与 Castle.Core 版本冲突

发布于 2024-12-16 15:28:59 字数 649 浏览 1 评论 0原文

我在尝试将 White 功能添加到基于 Selenium WebDriver 的测试框架时发现了一个问题。添加对项目的所有引用后,它会编译 没有错误。但使用方法时会抛出异常 Application.GetWindow(windowTitle):

Application application = Application.Attach(processID);
Window downloadWindow = application.GetWindow(windowTitle);

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

我下载了最新版本的 Castle.Core,但问题仍然存在。因此,我删除了对 Castle.Core 最新版本的引用,并将 NuGet 的引用添加到 Castle.DynamicProxy 和 Castle.Core 1.2.0(这个版本我用于单独的测试并且它们可以工作)。但对于过时版本的 Castle.Core,NHibernate 存在问题。它不起作用。

对于这样的问题有什么决定吗?

I found an issue trying to add White functionality to our testing framework based on Selenium WebDriver. After adding all references to project, it compiles
without errors. But it throws an exception when using method
Application.GetWindow(windowTitle):

Application application = Application.Attach(processID);
Window downloadWindow = application.GetWindow(windowTitle);

ex.Message="Could not load file or assembly 'Castle.Core, Version=1.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)"

I downloaded latest version of Castle.Core but problem remains. So I remove references to the last version of Castle.Core and add references with NuGet to Castle.DynamicProxy
and Castle.Core 1.2.0 (this version I used for separate tests and they work). But with obsolete versions of Castle.Core there is an issue with NHibernate. It does not work.

Is there any decisions for such problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

桃酥萝莉 2024-12-23 15:29:02

也许您可以在 web.config (或 app.config)中添加程序集绑定,以在解析 1.2.0.0 时转发当前版本以返回:

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

并希望它们兼容。我不确定 publicKeyToken 是否相同,即 1.2.0.0 中的那个,因此您应该更改它以反映 2.5.2.0 我认为,或者如果它需要 1.2.0.0 令牌。

Maybe you can add an assembly binding in your web.config (or app.config) to forward the current version to return when resolving 1.2.0.0:

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

And hope that they are compatible. I'm not sure that the publicKeyToken is the same, that is the one from 1.2.0.0 so you should change that to reflect 2.5.2.0 I think, or if it wants the 1.2.0.0 token.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文