【问题标题】:Installing Correct Version of Microsoft.SQLServer.Replication.dll安装正确版本的 Microsoft.SQLServer.Replication.dll
【发布时间】:2015-01-15 15:00:17
【问题描述】:

我编写了一个应用程序来控制 sql server 上的合并复制过程。它在我的开发机器上运行没有问题。在我的测试安装中,我在 Win 7 64 位上安装了 SQL Server 2008 R2 64 位。当我尝试使用我的复制程序时,它会崩溃并显示以下异常消息

[ReplicatorClient.exe] - [Fatal] - [1/15/2015 9:29:56 AM] - 版本 0.5.16.0 用户 - vuser 消息 - 无法加载文件或程序集 'Microsoft.SqlServer.Replication,版本=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' 或其依赖项之一。试图加载格式不正确的程序。

堆栈跟踪 -
在 ReplicatorClient.Models.DatabaseSynchronization.CreatePublication()
在 ReplicatorClient.ReplicatorWindow.ReplicatorWindowViewModel.MenuCreateSubscription()

我已将我正在使用的Microsoft.SqlServer.Replication.dll 复制到我的开发人员机器上的bin 文件夹中,并将其安装在测试机器上的程序文件夹中,但程序显然没有看到它。我可以采取哪些步骤来弄清楚我需要做什么才能看到这个 dll 并且我的应用程序在部署时可以正常工作?

我正在使用 WIX 来安装它。

【问题讨论】:

    标签: sql-server wix merge-replication


    【解决方案1】:

    一般而言,WiX / MSI 是您的部署方法(作为您的手动副本的证据)并不重要,因为这实际上是使正确的依赖关系自动化的问题。

    通常,您必须分析装配负载。我一直讨厌这条消息,因为它说 X 或“依赖于它”。我希望它能告诉我它到底是哪一个。

    您破坏了 ILDasm 和 ProcessMonitor 以了解它试图加载和失败的内容。将它(或那些)放入安装程序,重置虚拟机并冲洗并重复。

    PS- 有时私有部署 DLL 是正确的做法,有时安装 prereq 可再发行组件是正确的做法。可能有一个 SQL MSI 可以为您处理所有这些,只需将其连接到您的引导程序/链接器(如果您有的话)。它只需要一点研究。这不是我熟悉的 DLL,所以我没有想到答案。

    【讨论】:

    • 我现在是第一次尝试 ILDasm,当我用我的应用程序启动它时,我收到了大量的错误弹出消息。这正常吗?
    • 像这样挑选和选择 Dll 几乎总是不正确的。 SQL 安装有一个安装复制组件的选项,我怀疑默认情况下没有安装它们。此外,请确保您的代码位数与 SQL 服务器 technet.microsoft.com/en-us/library/… 的位数相匹配。
    • 菲尔,你能解释一下你的意思吗?我通常会分析依赖关系,然后在可能的情况下寻找可再发行组件,或者在没有的情况下进行私有部署。我不确定你的意思。
    猜你喜欢
    • 2021-08-13
    • 2021-04-28
    • 2021-09-11
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多