0

Microsoft.SqlServer.Management.Smo、Microsoft.SqlServer.batchparser.dll、およびその他のいくつかのSqlServer dllを使用しているC#プロジェクトがあります。

開発ボックスでコードを実行すると正常に動作しますが、実行可能ファイルをクリーンなマシン(クライアントのマシン)で実行しようとすると失敗し、次の例外がスローされます。

Microsoft.SqlServer.Management.Smo.FailedOperationException:データベース'testdb'のExecuteNonQueryが失敗しました。---> System.IO.FileLoadException:ファイルまたはアセンブリ'Microsoft.SqlServer.BatchParser.dll'またはその依存関係の1つを読み込めませんでした。アプリケーションの構成が正しくないため、このアプリケーションを起動できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。(HRESULTからの例外:0x800736B1)at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly、String name、Boolean throwOnError、Boolean ignoreCase、ObjectHandleOnStack type)at System.Reflection.RuntimeAssembly.GetType(String name、Boolean throwOnError、Boolean ignoreCase)at Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements(String query、ExecutionTypes executeType、Int32&

ここで、「Microsoft SQL Server 2012共有管理オブジェクト」をクライアントのマシンにインストールすると、動作を開始します。

バッチパーサーが失敗する原因となっている依存関係を正確に調べたい。「MicrosoftSQLServer2012共有管理オブジェクト」インストーラーからアセンブリを取得してGACにコピーしましたが、それでも同じエラーが発生します。

私の質問は次のとおりです。1-batchparser.dllの依存関係を見つけて、インストーラーに追加するにはどうすればよいですか?2-アプリケーションの前にインストールできるSQLServer2012の再配布可能なパッケージはありますか。

ありがとう、アリ

4

1 に答える 1

0

同じ問題を抱えている人のために、

Microsoft Visual C ++再頒布可能パッケージATLセキュリティアップデートをインストールすると、問題が修正されました。

乾杯、

于 2012-06-29T12:51:42.807 に答える