私のアプリケーションは、アプリケーション設定に対するユーザーの入力を XML ファイルに保持します。ここで、アプリケーションをアンインストールしましたが、設定ファイル (xml ファイル) がまだそこにあるとします。削除されていません。その設定ファイルを次のインストールに使用したいと思います。インストール時に「既存の設定を使用しますか?」のようにユーザーに確認する方法はありますか? 新規インストール後に再度設定を初期化する必要がないように。
2 に答える
最も簡単な解決策は、これをインストーラの問題にしないことです。settings.xml はインストーラーに含まれないファイルにします。アプリケーションの最初の実行時に設定を要求し、XML をセットアップします。インストーラーがアンインストールすると、自動的に残ります。それらが再インストールされた場合でも、アプリは settings.xml を見つけます。
また、インストーラーでレジストリ値にインストール日時を設定し、アプリケーションでこれを settings.xml に設定することもできます。現在のレジストリ値と xml 値のタイム スタンプが異なる場合は、再インストールがあったことがわかり、「維持しますか?」と尋ねることができます。よろしければ質問してください。
現在、インストーラーは、失敗する可能性のある不要なカスタム アクションのない単純なファイル コピー パッケージです。
はい、できます。まず、アプリケーションをアンインストールするときに、作成済みの XML ファイルが削除されていないことを確認する必要があります。デフォルトでは、MSI で展開されたアプリケーション ファイルをアンインストールすると、アンインストール時に削除されます。これを防ぐには、その特定のファイル プロパティに移動し、に設定Permanent
しTrue
ます。
セットアップ プロジェクトにインストーラー クラスを追加する必要があります。インストール メソッド内で、XML ファイルが存在するかどうかを確認します。その場合、確認メッセージをユーザーに表示します。ユーザー設定に基づいて、古い xml ファイルを保持するか、新しいファイルを追加して新しい設定を再度保存します。
public override void Install(System.Collections.IDictionary stateSaver)
{
//Invoke the base class method
base.Install(stateSaver);
if (File.Exists("XML File path"))
{
DialogResult result = MessageBox.Show("Do you want to use existing setting?","",MessageBoxButtons.YesNo);
if (result.Equals(DialogResult.Yes))
{
}
else
{
}
}
}