注意:セットアッププロジェクトはVisual Studio 2012からサポートされなくなりました。
設定ファイルなどのファイルをMSIファイルで配置した場合、通常はアンインストールで削除されてしまいます。よって、セットアッププロジェクトのRemovePreviousVersionsプロパティを使ってアップデートした時も削除され、新しいファイルに置き換わってしまいます。
これを防ぐためには、設定ファイルのPermanentプロパティをTrueにしてアンインストールで削除しないようにするか、インストーラで配置するのではなく、アプリケーション自身で設定ファイルを作成するような方法があります。ただしこのような方法では、本当にアプリケーションをアンインストールしたい時も、設定ファイルは削除されずに残ることになります。
補足:設定ファイルをアンインストールで削除させずに残す場合、そのファイルが新しいファイルで上書きされるかについては、「インストーラでファイルを上書きする」で説明しています。
このような問題を解消する別の方法が次のリンク先で紹介されています。
ここで紹介されている方法は、RemovePreviousVersionsプロパティで前のバージョンをアンインストールしてから新しいバージョンをインストールするのではなく、インストールしてからアンインストールするという方法です。
具体的には、OrcaでMSIファイルを開き、InstallExecuteSequenceテーブルにあるRemoveExistingProductsアクションのSequence番号を一番最後になるように設定します。通常はInstallFinalizeアクションが最後で、そのSequence番号は6600ですので、それ以上の数(6700など)にして、保存します。
(この記事は、「.NETプログラミング研究」の第61号で紹介したものを基にしています。)
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。