3

.NETとC#3.5が、複数のプロジェクトや複数のソリューションにまたがるアプリケーションの設定をどのように処理するかはよくわかりません。多分誰かが私が物事を片付けるのを手伝ってくれるでしょう。

2つのソリューションがあり、どちらにもいくつかのプロジェクトが含まれています。これらのプロジェクトの一部には、プロパティフォルダーの下にSetttings.settingsファイルが含まれており、このプロジェクトのソースファイルに必要な特定の構成変数が含まれています。

何かのようなもの

  1. JobManagerソリューション
    • Manager.Core(設定ファイル付き)
    • Manager.UserInterface(設定ファイル付き)
    • Manager.Extension
  2. インポーターソリューション
    • インポーター(設定ファイル付き)
    • サービス(設定ファイル付き)

ご覧のとおり、Manager.Coreにはデータベース接続情報などをImporter格納するための独自の構成ファイルが含まれていますが、には、データベースにインポートする必要のあるファイルを取得する場所を知るためのインポートディレクトリへのパスを格納する独自の構成ファイルが含まれていますManager.Core。それで。(これがManager.Coreの目的であり、DBを操作するためのすべてのクエリと挿入が含まれています)

Service一方、は、インポーターを使用するWindowsサービスであり、1時間程度ごとに実行し、エラーログパスの独自の構成設定を含みます。

これで、サービスをコンパイルすると、Service.exe.configという構成ファイルが1つだけになり、サービスプロジェクトで指定された構成パラメーターのみが含まれます。私の最初のアプローチは、 Service.exe.configのManager.CoreとImporterのすべての設定エントリを複製することでした。しかし、テストの結果、どういうわけか、インポーターのパラメーターが存在し、使用されていることがわかりました。

Service.exe.configに存在しない場合の設定はどこにManager.Core保存されますか?Importer

現在の設定Manager.Coreもありますか?つまり、これらの構成設定のエントリをサービス設定ファイルに複製する必要はありませんか?

よろしく、マイケル

4

2 に答える 2

1

設定のデフォルトは通常、コードに生成され、結果のdllにコンパイルされます。

彼らは「SettingsSingleFileGenerator」のCustomToolプロパティを設定しています

スコープを持つ単一の値「MyName」を含むFoo.settingsという設定ファイルの場合名前空間Company.Properties(「Company」というプロジェクトのデフォルトの場所)に値「Shuggy」の文字列型を適用します。リフレクターは、Company.Properties名前空間に次のようなクラスがあります。

[GeneratedCode(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator"
,"9.0.0.0")] 
[CompilerGenerated]
internal sealed class Foo : ApplicationSettingsBase
{
    private static Settings defaultInstance = 
        ((Settings) SettingsBase.Synchronized(new Settings()));

    public static Settings Default
    {
        get { return defaultInstance; }
    }


    [ApplicationScopedSetting]
    [DefaultSettingValue("Shuggy")]
    [DebuggerNonUserCode]
    public string MyName
    {
        get
        {
            return (string) this["MyName"];
        }
    }
}

これは、設定構造とデフォルト値が、関連するdll内で保持される方法です。実際の値は、スコープ(および場合によってはアプリが実行することを決定したプログラム上の変更)に応じて、さまざまな構成ファイルから読み取られます。

これらがどのように使用されることを意図しているかについてのより高いレベルのビューについては、この記事を参照してください

于 2009-04-23T10:19:31.840 に答える
0

これらは使用されていませんが、ソリューション内の単一のファイルへのリンクに置き換えることができますか?

于 2009-04-23T09:45:01.410 に答える