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の再配布可能なパッケージはありますか。
ありがとう、アリ