1

VS2008 で C# で開発したサービス アプリケーションに設定ファイルを追加しました。設定ファイルのデザイナーで、新しい日時変数を挿入し、その日時変数のデフォルト値を入力しました。たとえば、この変数の名前が で、その値が " " であるとします。 サービス アプリケーションを実行すると、次のコード行で値が正しく取得されます。user scopeMyDate2013-01-08
MyDate

Datetime value = app.Default.MyDate; // app is the name of the settings file

その後、次のコード行でMyDate" " に設定しました。2013-01-08 14:00:00

app.Default.MyDate = DateTime.Now; // Suppose Now is 2013-01-08 14:00:00 at that time.
app.Default.Save();

今まではすべて問題ありません。MyDateパラメータは私が望むものに設定されています。ただし、app.configファイルに新しい値が表示されません。Debug フォルダーの構成ファイルを開くと、次のようにしか表示されません。

    <setting name="MyDate" serializeAs="String">
        <value>2013-01-08</value>
    </setting>

そして驚いたことに、アプリケーションを再実行すると、MyDateパラメータが " 2013-01-08 14:00:00" ではなく" " になっているようです2013-01-08。Debug フォルダーとプロジェクト フォルダー内のすべての構成ファイルを調べましたが、" " の値が見つかりませんでし2013-01-08 14:00:00た。ただし、MyDateパラメーターは起動時にこの値に設定されます。
MyDate 変数の値がどこに保存されているか知りたいですか? どのファイルを探すべきですか?

解決策の編集:設定ファイルを使用しないことにしました。アプリケーション パラメータを保存するために、設定ファイルの代わりに app.config ファイルを使用します。app.config はタイプ セーフではありませんが、ファイル内のパラメーターを編集する方が簡単です。一方、設定ファイルは閉じた箱のようなもので、パラメータ値を格納するファイルを見つけることができません。

4

3 に答える 3

1

に格納されているためです。

<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.configファイル。

例:C:\Users\<User>\AppData\Local\<Company>\<Product>\<Version>\user.configファイル。

コードから、次を使用できます。

var path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

ローカル アプリケーション データの保存場所を取得します。

[アップデート]

あなたが言ったように、これは Windows サービス アプリケーションです。次のパスを検索してみてください。

c:\windows\system32\config\systemprofile\AppData\Local\

于 2013-01-08T14:04:54.170 に答える
1

ユーザー スコープの設定は、実際には app.config には保存されませんが、user.config. このファイルの場所は、System.Windows.Forms.Application.LocalUserAppDataPathプロパティによって決まります。アーキテクチャの詳細については、こちらを参照してください。

必要に応じてこの場所を変更することもできます。詳細については、この回答を参照してください。

于 2013-01-08T14:05:40.053 に答える
0

今まではすべて問題ありません。MyDate パラメーターは、私が望むものに設定されています。ただし、app.config ファイルに新しい値が表示されません。

ここで、App.config ファイルを誤解しています。app.config ファイルは、コーディング/設計時の一部であるソリューション ファイルです。アプリケーションをデバッグ モードまたはリリース モードで実行する場合は、これを変更しないでください。正確に何が起こっているのか。これにはデフォルト設定があります。あなたのアプリのために。

アプリケーションをデバッグ モードで実行すると、myapplication.exe.config があるはずの Bin/Debug フォルダーに出力が生成されるとします。app.config の代わりにこのファイルを確認する必要があります。これまでに変更したものは、myapplication.exe.config に変更されます。ファイルが app.config にありません。

于 2013-01-08T14:07:49.267 に答える