私は組み込みの設定機能を使用するWPFアプリケーションを持っています。私は、アプリケーションの新しいバージョンをリリースすると、私は、アセンブリのバージョンを高め、アプリケーションの起動時に次のコードを実行します。Settings.Default.Upgrade()は現在の設定を保持しません
if (Settings.Default.IsSettingsUpgradeRequired) //this defaults to true when a new version of this software has been released
{
Settings.Default.Upgrade(); //upgrade the settings to the newer version
Settings.Default.Reload();
Settings.Default.IsSettingsUpgradeRequired = false;
Settings.Default.LastSettingsUpdate = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
Settings.Default.Save();
}
問題は、以前の設定が維持されていないということです。新しいバージョンが登場するたびに、\ AppData \ Local \の下に新しいフォルダが作成されます。したがって、以前のバージョンのデフォルト設定の代わりにデフォルト設定が使用されます。通常の状況下では、アプリケーションのバージョンが名前である多数のサブフォルダを含む1つのフォルダが存在するはずです。代わりに、私はそれぞれがアプリケーションのバージョンを名前として持つ1つのフォルダのみを含む多くのフォルダを持っています。 ローカル\にあるフォルダ構造は次のようになります。
- myApp.exe_Url_5s2axp5sywfyhblm3201qetpqnmwnvsc
- myApp.exe_Url_ft4ih1ze0qsz5abu11t334omxo1431c0
- myApp.exe_Url_glsc2d3cjmswry2bxebb53jndfptav1x
- myApp.exe_Url_qngn1rqmbfyy42fdgpmc3ystsaknuxnv
- myApp.exe_Url_vqn0ogftrchl1fild5fe34hmijvmd2zr
どのように私は設定を適切にアップグレードできるように、非常に多くのフォルダを作成し、アプリケーションごとに1つのフォルダのみを使用するようにシステムを停止するのですか?
編集:最初に起動したときに、アプリケーションが新しい設定フォルダを作成します。私は今日気づいた他の事は、私は(\ MyApp]をCに、デスクトップからそれを動かす言うことができます)アプリケーションのフォルダの場所を変更した場合ということです。システムがそれを同じアプリケーションとして認識しないのはなぜですか?
>署名を)、およびそれOKです。削除してください。 –
既に試しましたが、何も変更されません。問題は、それが同じアプリケーションであることを認識しない場合、システムが各ソフトウェアバージョン用の新しいアプリケーションフォルダを作成することです... – Cleo
多分、マニフェストファイルを持っている/持たないことと関係がありますか? または、アプリケーションに署名する必要がありますか? – Cleo