|
[Installer] Conditionを指定した場合のアンインストール時にレジストリが消えてしまう 投稿日時: 2006-2-8 午後 1:50 |
はじめまして。fumikasuと申します。
セットアッププロジェクトのレジストリ設定で、 あるレジストリキーに対して、以下のようなプロパティ設定をします。 Condition=VersionNT (まあここは何でも良いのですが・・・) DeleteAtUninstall=False
この設定でインストールを行い、 このレジストリキーの下に文字列値などを手動追加した場合、 意図としては追加した値以外は削除され、追加した値は削除されて欲しくないのですが、 該当キーごと全て削除されてしまいます。 Conditionプロパティをセットしなかった場合は削除されず、 手動で追加した値は残ります。
この動作はバグでしょうか? それとも、プロパティ値の使い方が間違っていますでしょうか? ご指摘願います。 # 私は、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runに # この設定を適用した為、スタートアップが全て消えてしまいました。。。
環境は Visual Studio .NET 2003 です。 |
|
|
とっちゃん
|
 |
 |
| 参加日: 2004-3-31 |
| 投稿数: 431 |
| |
|
Re: [Installer] Conditionを指定した場合のアンインストール時にレジストリが消えてしまう 投稿日時: 2006-2-8 午後 2:43 |
とっちゃんです。
おそらくバグと思われます。
他のバージョンは確認していませんが、レジストリキーにコンディションを設定すると 必ずキーを消すように設定されてしまいます。
Condition が設定されている場合、「なぜか」他の条件にかかわり無く、キーを消すように 設定されてしまいます(DeleteAtUninstall=Trueと解釈されてしまう)。
唯一設定が消えたのは、AlwaysCreate=True DeleteAtUninstall=False の場合でしたけど この場合は、必ず作成のフラグが設定されてしまいます。
回避策としては。。。
ビルドした後で Orca などを使っていらないものを消していく(もしくは再調整する)ということになりますね。
あとは、WiX や InstallShield などに乗り換えるというところでしょうか。
// とっちゃん(高萩 俊行) // とっちゃんのBlog // Microsoft MVP for Windows-SDK (Oct 2005 - Sept 2006)
|
|
|
社本 明弘
|
 |
 |
| 参加日: 2003-7-2 |
| 投稿数: 97 |
| |
|
Re: [Installer] Conditionを指定した場合のアンインストール時にレジストリが消えてしまう 投稿日時: 2006-2-8 午後 2:57 |
社本@ワックです。
> おそらくバグと思われます。
このバグといいうのは、Windows Installerのバグのことではなく VS2003のセットアッププロジェクトのバグってことですよね?
#VS2005では、どうなんだろう?
|
|
|
とっちゃん
|
 |
 |
| 参加日: 2004-3-31 |
| 投稿数: 431 |
| |
|
Re: [Installer] Conditionを指定した場合のアンインストール時にレジストリが消えてしまう 投稿日時: 2006-2-8 午後 3:09 |
とっちゃんです。
> このバグといいうのは、Windows Installerのバグのことではなく > VS2003のセットアッププロジェクトのバグってことですよね?
はい。 出来上がった msi のテーブルをOrcaで直接見てますので。 インストール・アンインストールは面倒なので試してません(開発マシンでテストなんて出来ないもの(^^;)。
他のバージョン(2002/2005)のセットアッププロジェクトは未確認です。
// とっちゃん(高萩 俊行) // とっちゃんのBlog // Microsoft MVP for Windows-SDK (Oct 2005 - Sept 2006)
|
|
|
|
Re: [Installer] Conditionを指定した場合のアンインストール時にレジストリが消えてしまう 投稿日時: 2006-2-8 午後 3:12 |
やはりOrcaとかですよね・・・。~.~ さしあたって、(不服ながら)Condition設定はせずに、 バージョン毎のセットアッププロジェクトを作ることにしました。 InstallShield乗り換えを検討してみます。
VS2005では治っていて欲しいです。
ありがとうございました。 |
|
|