1

当社の製品にはいくつかのユーザー定義設定があり、これまでプロジェクトの設定変数を使用して保存されています。

public string MySetting {
  get { return Settings.Default.MySetting; }
  set { 
    Settings.Default.MySetting = value;
    Settings.Default.Save();
  }
}

これは正常に機能しますが、アプリをアンインストールして新しいバージョンを再インストールすると(直接のアップグレードパスが存在しないため、尋ねないでください)、すべての設定が失われるという不幸な特徴があります。

これを達成するためのいくつかの方法を考えることができますが、それらはすべて私には少し厄介に思えます。アンインストールと再インストールの間にユーザー定義のアプリケーション設定を保持する最も簡単な方法は何だと思いますか?

4

3 に答える 3

3

Windows では、これを実現できる方法が 2 つあります。1 つ目は、単純に XML/INI/JSON などのファイルをユーザーの AppData フォルダーに保存することです。これにより、ファイルがアプリケーションのパスの外に配置されるため、簡単に再取得できます。次のように AppData フォルダーを見つけることができます。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

このタイプのデータに適したもう 1 つの場所は、レジストリです。.NET フレームワークは、これを行うための優れたサポートを備えています。MSDNその他の場所には、作業を開始するのに役立つ多くのドキュメントがあります。

于 2012-05-24T13:45:12.217 に答える
0

I know that for ClickOnce applications, a neat feature is to use a user setting to indicate whether an update is required set to true by default. Then, for example in Program.cs, you could this:

if (Properties.Settings.Default.SettingsUpgradeRequired)
{
    Properties.Settings.Default.Upgrade();
    Properties.Settings.SettingsUpgradeRequired = false;
    Properties.Settings.Default.Save();
}

Would this work in your case even if you do not use ClickOnce as your deployment method?

于 2012-05-24T13:51:08.797 に答える
0

ユーザー設定を保持するか、すべてのデータを削除するかをユーザーに尋ねるカスタム アクションを UnInstall に追加できます。

ユーザーが設定を保持することを決定した場合、すべてのパラメーターを保持するインストール パスに設定ファイルを保持し、インストール時の設定を古いファイルの設定に置き換えるカスタム アクションをインストールに追加できます。

レジストリに値を追加して、インストールでそれらを確認することもできます。

于 2012-05-24T13:52:56.920 に答える