パブリッシュしたライブラリのデータベース関連のワークフローを呼び出すとエラーが発生する

:white_question_mark: Question

パブリッシュしたライブラリのデータベース関連のワークフローを別のオートメーションプロジェクトから呼び出すとエラーが発生します。エラー解消方法を教えてください。

The specified invariant name ‘System.Data.SqlClient’ wasn’t found in the list of registered .NET Data Providers.

:light_bulb: Answer

原因

「データベース」アクティビティパッケージの依存関係に「System.Data.SqlClient」が含まれるか否かはバージョンによって異なります。バージョン「1.6.1」以下には含まれていますが、バージョン「1.7.0」以上には含まれません。下記公式ガイドに記載している仕様変更が原因です。

v1.7.0
・重大な変更
接続オプションが System.Data.SqlClient のアクティビティを含む Windows - レガシ プロジェクトを Windows 対応プロジェクトに変換すると、接続オプションを Microsoft.Data.SqlClient に変更しない限り、実行時に例外がスローされます。

解決策

下記 2 通りのエラー解消方法をお試しください。

A) 呼び出すオートメーションプロジェクトで利用している依存関係のバージョンダウン

「データベース」アクティビティパッケージを依存関係に「System.Data.SqlClient」が含まれる「1.6.1」以下へバージョンダウンします。

B) 呼び出されるライブラリで利用している依存関係のバージョンアップ

「データベース」アクティビティパッケージを依存関係に「System.Data.SqlClient」が含まれない「1.7.0」以上へバージョンアップします。