1. ホーム
  2. .net

[解決済み] .NET設定ファイルconfigSourceがアプリケーションディレクトリフォルダ外にある場合

2023-05-24 17:04:35

質問

コンソールアプリケーションとASP.NETアプリケーションの2つのアプリケーションを持っています。これらは両方とも、同じ appSettings と connectionStrings を知る必要があります。理想的には、app.config/web.config ファイルの configSource プロパティを使用して、中央の場所を指すようにしたいと思います。たとえば、次のようになります。

<connectionStrings configSource="D:\connectionStrings.config"/>
<appSettings configSource="D:\appSettings.config"/>

しかし、これはエラーで失敗します。

configSource属性が無効です。: configSource 'D:\appSettings.config' は無効です。設定ファイルと同じディレクトリまたはサブディレクトリにあるファイルを参照する必要があります。

構成マネージャ appSettings/connectionStrings をまだ使用していて、外部の場所から値を取得する方法はありますか。

私はそれを行うためにコードを追加しなければならないことに満足していますが、構成マネージャシステム全体を交換する必要はありません。

どのように解決するのですか?

もう 1 つの解決策は、実際にファイルをプロジェクトにコピーするのではなく、すべてのプロジェクトに設定ファイルをリンクとして追加するだけです。そして、ファイルの "Build Action" を "Content" に設定し、 "Copy to Output Directory" を "Copy if newer" に設定して、プロジェクトをコンパイルすると、そのファイルが出力ディレクトリに存在することになります。

ファイルをリンクとして追加するには、"Add Existing Item" ダイアログ ボックスに、ドロップダウンのある Add ボタンがあります。Add ボタンのドロップダウンから "Add as link" を選択して、処理を完了します。