1

我的机器: Windows XP (x86)、VS2008、.net 3.5、sql server 2005、WinForms -> App 工作正常。

生产机器: Windows 7 (x64), SQl Server 2005 Express -> App Starts but throws exception

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 中启动请求订阅并显示状态。在我的机器上工作正常,但在生产机器上失败。我正在使用安装项目在生产机器上安装应用程序,但我认为我在某处缺少依赖项,但我无法弄清楚。在生产机器上,应用程序启动正常,但是当我尝试同步订阅时,我得到:

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

编辑: Win 7 中的任务管理器指示它作为 32 位应用程序 (myapp.exe *32) 运行。

编辑:好的,我的应用程序现在在任务管理器中显示它是 64 位应用程序,但我收到错误消息。我在想我如何有一个针对 x86 的依赖 dll。如何验证依赖 dll 的目标是正确的平台和/或确保它的目标是 x64...

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

4

2 回答 2

0

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

于 2010-12-29T15:57:20.517 回答
0

我认为 setup prjoect 会在我检测到的依赖项中重建 dll,以针对我在 setup 项目中选择的任何 >cpu

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

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

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

于 2011-03-04T08:20:05.787 回答