他のクラスが接続する必要のある3つのデータベースの3つのエンティティモデルを含むクラスライブラリを作成しました。このクラスライブラリは、3つの異なるWebサービスと1つのWebサイトで使用されます。これらはすべて独自のサーバーにインストールされるため、同じ接続データを共有する簡単な方法はありません。
私のweb.configファイルには、次の行があります。
<connectionStrings configSource="Dependencies.ConnectionStrings.Config"/>
これにより、接続文字列が別のXMLファイルからロードされます。これは正常に機能しますが、このDependencies.ConnectionStrings.Configファイルの5つの異なるコピーがあることも意味します。開発中は単一のファイルを使用したいと思います。
ただし、私のソリューションには4つのセットアッププロジェクトも含まれており、これらのセットアップでは、構成ファイルが互いに隣接している必要があります。
では、web.configを変更せずに、複数のプロジェクト間で単一の構成ファイルを共有するようにVSに指示するにはどうすればよいですか?
もう少し複雑にするために、クラスライブラリはapp.configを使用して接続文字列を格納します。また、接続文字列を別の構成ファイルにリンクするようにapp.configに指示することはできません。さらに複雑なのは、インストール後にシステム管理者が接続文字列を変更する必要があることです。これは、開発データベースとは別のデータベースを探す必要があるためです。(実際、開発中は、3つのデータベースを使用してエンティティロジックを分割します。テスト環境と本番環境では、1つのデータベースのみを使用します。)
私の現在の解決策は単純です。Dependencies.ConnectionStrings.Configファイルをソリューションの別のフォルダーに追加し、これを他のプロジェクトに定期的にドラッグアンドドロップして更新しました。これは機能しますが、エラーが発生しやすくなります...