-2

私のアプリケーションは、アプリケーション設定に対するユーザーの入力を XML ファイルに保持します。ここで、アプリケーションをアンインストールしましたが、設定ファイル (xml ファイル) がまだそこにあるとします。削除されていません。その設定ファイルを次のインストールに使用したいと思います。インストール時に「既存の設定を使用しますか?」のようにユーザーに確認する方法はありますか? 新規インストール後に再度設定を初期化する必要がないように。

4

2 に答える 2

0

最も簡単な解決策は、これをインストーラの問題にしないことです。settings.xml はインストーラーに含まれないファイルにします。アプリケーションの最初の実行時に設定を要求し、XML をセットアップします。インストーラーがアンインストールすると、自動的に残ります。それらが再インストールされた場合でも、アプリは settings.xml を見つけます。

また、インストーラーでレジストリ値にインストール日時を設定し、アプリケーションでこれを settings.xml に設定することもできます。現在のレジストリ値と xml 値のタイム スタンプが異なる場合は、再インストールがあったことがわかり、「維持しますか?」と尋ねることができます。よろしければ質問してください。

現在、インストーラーは、失敗する可能性のある不要なカスタム アクションのない単純なファイル コピー パッケージです。

于 2013-10-21T11:40:19.047 に答える
0

はい、できます。まず、アプリケーションをアンインストールするときに、作成済みの XML ファイルが削除されていないことを確認する必要があります。デフォルトでは、MSI で展開されたアプリケーション ファイルをアンインストールすると、アンインストール時に削除されます。これを防ぐには、その特定のファイル プロパティに移動し、に設定PermanentTrueます。

セットアップ プロジェクトにインストーラー クラスを追加する必要があります。インストール メソッド内で、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
           {

           }
       }
}
于 2013-10-21T08:56:15.263 に答える