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

时间:2011-11-17 11:11:22

标签: nhibernate selenium castle

我发现一个问题是尝试在我们基于Selenium WebDriver的测试框架中添加White功能。添加项目的所有引用后,它编译 没有错误。但是在使用方法时会引发异常 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存在问题。它不起作用。

对此类问题有任何决定吗?

1 个答案:

答案 0 :(得分:1)

也许您可以在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令牌。