Windows 7上的RMO - 找不到指定的模块

时间:2010-12-28 21:48:24

标签: c# winforms sql-server-2005 rmo-programming

我的机器: Windows XP(x86),VS2008,.net 3.5,sql server 2005,WinForms - >应用程序运行正常。

生产机器: Windows 7(x64),SQl Server 2005 Express - >应用程序启动但抛出异常

Visual Studio 在安装项目和RMO项目上定位x86。 Visual Studio给了我几个警告,但我仍然可以构建:

Unable to find dependency 'MICROSOFT.SQLSERVER.MANAGEMENT.SQLPARSER' (Signature='89845DCD8080CC91' Version='10.0.0.0') of assembly 'Microsoft.SqlServer.Smo.dll'

Unable to find dependency 'MICROSOFT.SQLSERVER.MANAGEMENT.SQLPARSER' (Signature='89845DCD8080CC91' Version='10.0.0.0') of assembly 'Microsoft.SqlServer.Management.SmoMetadataProvider.dll'

这是一个简单的RMO(复制管理对象)应用程序,它在SQL Server 2005中启动pull订阅并显示状态。在我的机器上正常工作,但在生产机器上失败。我正在使用安装项目在生产机器上安装应用程序,但我认为我在某处缺少依赖项,但我无法理解。 在生产机器上,应用程序启动正常,但当我尝试同步订阅时,我得到:

System.IO.FileNotFoundException: The Specified module could not be found. (Exception from HResult: 0x8007007E) 

编辑: Win 7中的任务管理器表明它正在以32位应用程序(myapp.exe * 32)运行。

编辑:好的,我的应用程序现在在任务管理器中显示它是一个64位的应用程序,但我收到一个错误。我在想我有一个依赖dll如何针对x86。如何验证依赖dll是否针对正确的平台和/或确保它针对的是x64 ...我认为安装程序将重建我检测到的依赖项中的dll以定位我在安装项目中选择的任何cpu?< / p>

  

无法加载文件或程序集“Microsoft.SqlServer.Replication,Version = 10.0.0.0,Culture-neutral,PublicKey Token = 89845dcd8080cc91”或其中一个依赖项。试图加载具有不正确格式的程序。

2 个答案:

答案 0 :(得分:0)

以管理员身份运行Fusion Log viewer,并将其设置为Log Bind Failures to Disk 这样你就可以看到哪些DLL没有正确加载。

答案 1 :(得分:0)

  

我认为setup prjoect会在我检测到的依赖项中重建dll,以定位我在安装项目中选择的&gt; cpu

安装程序不会自动为您编译任何dll。

  

尝试加载格式不正确的程序。

看这里,在哪里可以找到x64版本的'Microsoft.SqlServer.Replication' http://social.msdn.microsoft.com/Forums/en/sqlreplication/thread/628ec2ae-c5d1-4aef-b31b-b889975bfc2b