1

私のマシン: Windows XP (x86)、VS2008、.net 3.5、SQL サーバー 2005、WinForms -> アプリは正常に動作します。

運用マシン: Windows 7 (x64)、SQl Server 2005 Express -> アプリは起動するが例外がスローされる

セットアップ プロジェクトおよび RMO プロジェクトでのVisual Studioターゲット 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'

これは、SQL Server 2005 でプル サブスクリプションを開始し、ステータスを表示する単純な RMO (レプリケーション管理オブジェクト) アプリです。私のマシンでは正常に動作しますが、本番マシンでは失敗します。セットアップ プロジェクトを使用して実稼働マシンにアプリをインストールしていますが、依存関係がどこかに欠けていると思いますが、それがわかりません。運用マシンでは、アプリは正常に起動しますが、サブスクリプションを同期しようとすると、次のようになります。

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

編集: Win 7 のタスク マネージャーは、32 ビット アプリ (myapp.exe *32) として実行されていることを示します。

編集: OK、私のアプリはタスク マネージャーに 64 ビット アプリであると表示されていますが、エラーが発生しています。私は、x86を対象とする依存関係のdllをどうにか持っていると考えています。依存関係の dll が正しいプラットフォームをターゲットにしていること、および/または x64 をターゲットにしていることを確認するにはどうすればよいですか?

ファイルまたはアセンブリ 'Microsoft.SqlServer.Replication, Version=10.0.0.0, Culture-neutral, PublicKey Token=89845dcd8080cc91' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。

4

2 に答える 2

0

Fusion Log ビューアーを管理者として実行し、バインドの失敗をディスクに記録するように設定します。
そうすれば、どの DLL が正しくロードされていないかを確認できます。

于 2010-12-29T15:57:20.517 に答える
0

セットアップ プロジェクトは、検出された依存関係の dll を再構築して、セットアップ プロジェクトで選択した >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 に答える