2011-12-14 9 views
2

私は、お互いをトリガする、またはスケジューラ、これらのフロントエンドとして機能するウェブサイト、およびすべてのアプリケーションがアクセスできるデータベースによって呼び出される一連のコンソールアプリケーションを持っています。ソリューションのコンフィグレーション情報を保存する

すべてのアプリケーションには独自のapp.config/web.configというファイルがあります。しかし、これらのアプリケーションすべてについて知っておく必要のある情報(サーバーの場所、エラー報告コントロールなど)があります。

この設定情報を保存する場所はどこですか?私の最初のアイデアは、SQLサーバーのConfigurationテーブルに格納することでしたが、これは魅力的ではありません。

解決策のすべてのプロジェクト/アプリケーションがアクセスできる構成情報はどこに保存する必要がありますか?

答えて

2

共有AssemblyInfo.csまたは厳密な名前のキーファイル(.snk)と同じ場所に保存します。これは、プロジェクト全体でこれらのファイルを共有していることを前提としています。

だからあなたのソリューションのルートフォルダは、次のようになります。

Project1Dir
Project2Dir
AssemblyInfo.cs
MySolution.sln
key.snk
shared.config

、あなたはでしょう必要な各プロジェクトに「リンクとして追加」を使用するshared.config

+0

これはかなり良いアイデアのようですが、配備されたシステムで情報を更新する必要がある場合はうまくいくでしょうか?たとえば、私のシステムには、エラー/警告メッセージが送信される電子メールアドレスのリストがあります。これは、展開後に更新する必要のある種類のものです。 – Oliver

+0

共有設定は、プロジェクトの 'app.config'と同じように、あなたのプロジェクトごとに別のファイルになるので、プロジェクト内の他の '静的'ファイルへの更新をどのように管理するかと同じになります。デプロイされたソリューションの設定ファイルをどのように管理するかは別の話題です(それはあなたが求めているものですか?) – wal

+0

プロジェクトの 'app.config'ファイルは1つの場所にしかありません。変更が必要な場合は、ファイルを見つけて編集するだけです。 'shared.config'は各プロジェクトごとに複製されるので、配備されたソリューションでそれを変更するには、各ファイルを別々に編集する必要があります。少なくとも、これはどのように動作するかと思います。 – Oliver