安装正确版本的Microsoft.SQLServer.Replication.dll

时间:2015-01-15 15:00:17

标签: sql-server wix merge-replication

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

  

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

     

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

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

我正在使用WIX来安装它。

1 个答案:

答案 0 :(得分:0)

一般情况下,WiX / MSI是您的部署方法(由您的手动副本证明)并不重要,因为它确实能够自动获得正确的依赖关系。

通常,您必须分析装配负载。我总是讨厌这条消息,因为它说X或" on依赖"。我希望它能告诉我究竟是哪一个。

你破坏了ILDasm和ProcessMonitor,以了解它正在尝试加载和失败的内容。将它(或那些)放入安装程序,重置VM并冲洗并重复。

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