とっちゃん's Blog

WindowsInstaller に WiX はいかがですか~

目次

Blog 利用状況

ニュース

とっちゃんって?

コミュニティ

@ITの記事

CodeZineの記事

WiX チュートリアル

Windows ユーザー エクスペリエンス ガイドライン

唯一の日本語書籍

記事カテゴリ

書庫

日記カテゴリ

インストーラ関連

旧館

レジストリキーにコンディションをつけると...

ネタ元:恐怖のアンインストール

その昔 GDNJ でも VS2003 で同じネタがあったのですが(おれがコメントつけてやんのww)、VS2005 にも同じバグが残されたままでした。

細かい状況は、ネタ元を見てもらうとして...w

レジストリキーのプロパティをみると、

名称 属性
(Name) 文字列  
AlwaysCreate Bool  
Condition 文字列  
DeleteAtUninstall Bool  
FullPath 文字列 読み取り専用
Transitive Bool  

というプロパティが並んでいます。

ここで、バグの遠因になっているであろう問題が一つ。Registry Table には Condition がありません(Transitiveは、Conditionの再評価なので、これも付いていないことになります)。

ではこれはどこについているか?というと、そのレジストリを持つコンポーネントが持っています。

ORCAを持ってる人は、適当にこさえたmsiでRegistry Tableを参照し、そこの Component_ にある値で検索してみるとよいでしょう。

Component Table にConditionが書かれています(TransitiveをTrueにすると、Attributesの値が変わります)。

VSセットアップでは、1エントリー1コンポーネントという贅沢な造りをしているので(原則)、機能上はこれでも全く問題ありません。トランスレータが正しければ...ですがw

実際はどうか?というと、msi に落とし込む(変換する)際、どうも間違った解釈をするらしく、Conditionにデータがあると、DeleteAtUninstall プロパティが True であると解釈されているようです(重要:AlwaysCreate=Falseの場合のみ)。

まず、この動作の前に、それぞれのフラグの説明をしておきましょう。

上記プロパティのうち、Registry Table に直接影響を与えるものは、(Name)、AlwaysCreate、DeleteAtUninstall の3つのプロパティだけ(のはず)です。

このうち、Nameは、キー名ですので、これについては改めて意識する必要はないと言えるでしょう。

問題は、残りの二つ。

これら二つは排他制御ではなく、ビット合成にあたるプロパティです(それぞれ、別々に設定したもので4通りを表現する)。

組み合わせは、False+False, True+False, False+True, True+True の4つです。

これらは、msi 上では、"", "+", "-", "*" の4つにマッピングされます。

まず、両方が False の ""。こちらは、デフォルトの動作でもあり、キーがなければインストール時に作成し、アンインストール時に消してもよければ消す(消してもよい=値やサブキーがない)という動作になります。

次が、AlwaysCreateのみTrueの"+"。こちらは、サブキーなどを持っていない空のキーでもインストール時に作成という動作になります。

DeleteAtUninstall のみ True の "-" は、ある意味危険なプロパティですが、アンインストール時に該当キーを「状況にかかわらず」削除するかどうかを指定します。

さいごが両方Trueの"*"。こちらは文字通りAlwaysCreate とDeleteAtUninstall の両方の動作をするものです。

 

さて、VSセットアップがmsiに落とし込んでいる際に、これらがどう解釈されているのかですが、実際に組み合わせて作ってみました。

組み合わせ表現は、AがAlwaysCreate、C がCondition、D が DeleteAtUninstall でFはFalse, TはTrueです。

それぞれの結果と、個人的な予測の表を作ってみました。

組み合わせ 結果 予測
AF_CF_DF 存在しない ""で存在
AF_CF_DT - -
AF_CT_DF - ""で存在
AF_CT_DT - -
AT_CF_DF + +
AT_CF_DT * *
AT_CT_DF + +
AT_CT_DT * *

となりました。 

予測と異なっていたのは2か所。というか、表の一番上は今回全パターンを組み合わせて初めて分かった...w

ま、とりあえず MSDN フォーラム 行きですなw

投稿日時 : 2007年7月19日 15:29

コメントを追加

# re: レジストリキーにコンディションをつけると... 2007/07/19 16:04 IIJIMAS

ありがとうございます。勉強になります。
msiをORCA.exeでのぞいてみます。

# re: レジストリキーにコンディションをつけると... 2007/07/19 17:24 IIJIMAS

MSDN フォーラム のVisual Studio フィードバックにフィードバックしていただきありがとうございます。本来私がやるべきでしたのに。申し訳ありません。。。
ありがとうございました。

# re: レジストリキーにコンディションをつけると... 2007/07/19 17:51 とっちゃん

巡回ついでに書いてきましたww

まぁ、動作自体はかなり致命的なんですが、2003/2005 と残ったままなのだとすると、2002からずっとあるという可能性のほうが高いですw
#たぶんエンジン自体ほとんど変わってないはず...w

まぁ、VSセットアップ自体がいただけねーツールの代表格なので、まともにインストーラ作ろうと思うと、かなりしんどいんですがねwww

#しかし、キーが作られないというのは知らなかったよ...orz


# tadalafil generic warning 2021/09/12 17:36 Aftelve

http://buystromectolon.com/ - can you buy stromectol over the counter in tijuana, mexico

# stromectol 12mg 2021/09/28 17:11 MarvinLic

stromectol uk http://stromectolfive.online# ivermectin rx

# ivermectin 1 cream generic 2021/10/31 13:45 DelbertBup

how much does ivermectin cost http://stromectolivermectin19.online# ivermectin cream cost
ivermectin coronavirus

# cheap generic pills 2021/12/03 19:56 JamesDat

http://genericpillson.com/# cheap generic pills doxycycline

# sildenafil 20 mg tablet uses https://viasild24.com/
2021/12/07 19:26 Nyusjdh

sildenafil 20 mg tablet uses https://viasild24.com/

# buy bimatoprost 2021/12/11 17:25 Travislyday

http://plaquenils.com/ hydroxychloroquine sulfate price

# bimatoprost ophthalmic solution careprost 2021/12/12 12:08 Travislyday

http://plaquenils.online/ plaquenil purchase online

# careprost bimatoprost for sale 2021/12/13 7:55 Travislyday

http://bimatoprostrx.online/ careprost for sale

# bimatoprost buy https://bimatoprostrx.com
best place to buy careprost
2021/12/13 16:10 Hksfnjkh

bimatoprost buy https://bimatoprostrx.com
best place to buy careprost

# careprost bimatoprost ophthalmic best price 2021/12/15 16:34 Travislyday

http://bimatoprostrx.com/ bimatoprost ophthalmic solution careprost

# stromectol in canada 2021/12/17 9:19 Eliastib

mynkxp https://stromectolr.com ivermectin 3mg

# ivermectin 5 mg price 2021/12/18 11:43 Eliastib

czqweb https://stromectolr.com ivermectin 3mg

# clomid order online https://clomidt.com
purchase clomid 2022/01/03 19:21 Clomid

clomid order online https://clomidt.com
purchase clomid

# cost of ivermectin lotion http://stromectolabc.com/
stromectol australia 2022/02/08 2:50 Busjdhj

cost of ivermectin lotion http://stromectolabc.com/
stromectol australia

# ivermectin 3 http://stromectolabc.com/
stromectol 0.5 mg 2022/02/08 9:38 Busjdhj

ivermectin 3 http://stromectolabc.com/
stromectol 0.5 mg

# doxy 200 https://doxycyline1st.com/
doxy 200 2022/02/26 10:14 Jusidkid

doxy 200 https://doxycyline1st.com/
doxy 200

# doxycycline pills https://doxycyline1st.com/
doxycycline hyc 2022/02/26 20:08 Doxycycline

doxycycline pills https://doxycyline1st.com/
doxycycline hyc

# clomid generic http://clomidus.store/ 2022/04/12 13:30 Clomids

clomid generic http://clomidus.store/

# where to buy clomid https://clomidonline.icu/ 2022/07/08 14:09 Clomidj

where to buy clomid https://clomidonline.icu/

# metformin cost mexico https://glucophage.top/
metformin 500mg canada 2022/08/23 8:23 Niujsdkj

metformin cost mexico https://glucophage.top/
metformin 500mg canada

# paxlovid and molnupiravir https://paxlovid.best/
paxlovid near me 2022/09/08 7:41 Paxlovid

paxlovid and molnupiravir https://paxlovid.best/
paxlovid near me

# best ed medication https://ed-pills.xyz/
ed pills otc 2022/09/16 20:07 EdPills

best ed medication https://ed-pills.xyz/
ed pills otc

# top rated ed pills https://ed-pills.xyz/
cheap ed pills 2022/09/17 20:23 EdPills

top rated ed pills https://ed-pills.xyz/
cheap ed pills

# doxycycline 100mg online https://buydoxycycline.icu/ 2022/10/08 12:12 Doxycycline

doxycycline 100mg online https://buydoxycycline.icu/

# american singles https://datingtopreview.com/
positive single 2022/10/17 20:39 Dating

american singles https://datingtopreview.com/
positive single

#  https://clomidforsale.site/ 2022/11/13 14:47 ForSale

https://clomidforsale.site/

# dating dating site https://topdatingsites.fun/
plenty of fish login page 2022/11/15 0:29 DatingTop

dating dating site https://topdatingsites.fun/
plenty of fish login page

# prednisone cream over the counter https://prednisone20mg.site/
prednisone purchase online 2022/11/15 17:59 Prednisone

prednisone cream over the counter https://prednisone20mg.site/
prednisone purchase online

# dating sites for free https://datingsiteonline.site/
online websites 2022/12/05 23:49 Tading

dating sites for free https://datingsiteonline.site/
online websites

# Read information now. Read information now.
https://edonlinefast.com
Cautions. Read information now. 2023/02/16 13:29 EdPills

Read information now. Read information now.
https://edonlinefast.com
Cautions. Read information now.

# doors2.txt;1 2023/03/14 15:30 zTBmElPVINxqZXdE

doors2.txt;1

# doors2.txt;1 2023/03/14 16:56 mOyjdcFFvljKZdS

doors2.txt;1

# online ed meds - https://cheapdr.top/# 2023/04/03 2:58 Dikolipo

online ed meds - https://cheapdr.top/#

# price of doxycycline - https://doxycyclinesale.pro/# 2023/04/21 17:55 Doxycycline

price of doxycycline - https://doxycyclinesale.pro/#

# order prednisone from canada - https://prednisonesale.pro/# 2023/04/22 5:12 Prednisone

order prednisone from canada - https://prednisonesale.pro/#

# no prescription online prednisone https://prednisonepills.pro/# - prednisone 40 mg rx 2023/06/04 21:46 Prednisone

no prescription online prednisone https://prednisonepills.pro/# - prednisone 40 mg rx

# pills for erection https://edpill.pro/# - best pills for ed 2023/06/27 10:19 EdPills

pills for erection https://edpill.pro/# - best pills for ed

# ï»¿paxlovid https://paxlovid.pro/# - paxlovid buy 2023/07/02 17:52 Paxlovid

paxlovid https://paxlovid.pro/# - paxlovid buy

# paxlovid buy https://paxlovid.store/
Paxlovid buy online 2023/07/13 13:39 Paxlovid

paxlovid buy https://paxlovid.store/
Paxlovid buy online

# paxlovid price https://paxlovid.life/# paxlovid covid 2023/07/25 20:59 Paxlovid

paxlovid price https://paxlovid.life/# paxlovid covid

# Misoprostol 200 mg buy online 2023/08/29 4:42 Georgejep

https://misoprostol.guru/# Abortion pills online

# farmacia online miglior prezzo 2023/09/24 17:15 Archieonelf

http://farmaciabarata.pro/# farmacia 24h

# comprare farmaci online all'estero 2023/09/25 16:04 Archieonelf

https://onlineapotheke.tech/# versandapotheke

# gГјnstige online apotheke 2023/09/26 12:30 Williamreomo

http://onlineapotheke.tech/# versandapotheke
п»?online apotheke

# farmaci senza ricetta elenco 2023/09/26 16:47 Archieonelf

http://farmaciabarata.pro/# farmacia online madrid

# online apotheke deutschland 2023/09/26 23:53 Williamreomo

http://onlineapotheke.tech/# online apotheke versandkostenfrei
versandapotheke deutschland

# online apotheke preisvergleich 2023/09/27 0:21 Williamreomo

https://onlineapotheke.tech/# online apotheke versandkostenfrei
online apotheke deutschland

# internet apotheke 2023/09/27 1:50 Williamreomo

https://onlineapotheke.tech/# online apotheke preisvergleich
online apotheke preisvergleich

# online apotheke gГјnstig 2023/09/27 3:14 Williamreomo

https://onlineapotheke.tech/# internet apotheke
internet apotheke

# farmacia online migliore 2023/09/27 18:58 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# п»їfarmacia online migliore 2023/09/27 22:30 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# doxycycline 50mg capsules 2023/10/07 23:22 GaylordPah

A one-stop-shop for all my health needs. http://doxycyclineotc.store/# doxycycline over the counter drug

# rx mexico online 2023/10/14 20:58 Kiethamert

https://gabapentin.world/# gabapentin 100mg

# canadian and international prescription service 2023/10/16 14:09 Dannyhealm

Efficient, reliable, and internationally acclaimed. http://mexicanpharmonline.shop/# pharmacies in mexico that ship to usa

# top rated canadian mail order pharmacies 2023/10/16 19:51 Dannyhealm

Global reach with a touch of personal care. http://mexicanpharmonline.com/# mexico drug stores pharmacies

# canada on line pharmacies 2023/10/18 1:15 Dannyhealm

Learn about the side effects, dosages, and interactions. https://mexicanpharmonline.com/# mexico drug stores pharmacies

# best online canadian pharmacies 2023/10/18 9:17 Dannyhealm

Long-Term Effects. https://mexicanpharmonline.shop/# mexican pharmaceuticals online

# canada pharmcy 2023/10/18 11:38 Dannyhealm

Their global pharmacists' network is commendable. http://mexicanpharmonline.shop/# mexican mail order pharmacies

# no perscription required 2023/10/18 13:57 Dannyhealm

The best place for quality health products. http://mexicanpharmonline.com/# mexican rx online

# canadian pharmacies that deliver to the us 2023/10/18 23:15 Dannyhealm

Their international supply chain ensures no medication shortages. https://mexicanpharmonline.shop/# mexico drug stores pharmacies

# best male ed pills 2023/11/22 13:39 WilliamApomb

http://sildenafil.win/# sildenafil over the counter south africa

# paxlovid for sale 2023/12/01 7:51 Mathewhip

Paxlovid over the counter https://paxlovid.club/# paxlovid

# farmacias online seguras en españa 2023/12/07 14:36 RonnieCag

http://vardenafilo.icu/# farmacia barata

# ï»¿farmacia online 2023/12/07 23:59 RonnieCag

http://vardenafilo.icu/# farmacias online seguras en españa

# farmacias baratas online envío gratis 2023/12/08 3:10 RonnieCag

https://farmacia.best/# farmacias online seguras en españa

# farmacias online seguras en españa 2023/12/08 9:02 RonnieCag

http://sildenafilo.store/# sildenafilo cinfa 25 mg precio

# farmacia online barata 2023/12/08 17:36 RonnieCag

http://farmacia.best/# farmacia online

# farmacias online seguras en españa 2023/12/09 18:23 RonnieCag

https://vardenafilo.icu/# farmacia envíos internacionales

# farmacias baratas online envío gratis 2023/12/09 21:46 RonnieCag

https://tadalafilo.pro/# farmacias online baratas

# farmacias online seguras en españa 2023/12/10 1:08 RonnieCag

https://vardenafilo.icu/# farmacia barata

# farmacias online seguras en españa 2023/12/10 4:56 RonnieCag

http://vardenafilo.icu/# farmacia online 24 horas

# farmacia envíos internacionales 2023/12/10 11:22 RonnieCag

http://sildenafilo.store/# sildenafilo 100mg precio españa

# farmacias online seguras en españa 2023/12/11 4:55 RonnieCag

http://tadalafilo.pro/# farmacia online barata

# farmacia online envío gratis 2023/12/12 9:34 RonnieCag

https://tadalafilo.pro/# farmacias online baratas

# farmacias baratas online envío gratis 2023/12/12 12:27 RonnieCag

http://tadalafilo.pro/# farmacia barata

# farmacias online seguras en españa 2023/12/12 18:47 RonnieCag

https://farmacia.best/# farmacia envíos internacionales

# Pharmacie en ligne France 2023/12/13 14:42 Larryedump

https://pharmacieenligne.guru/# Pharmacie en ligne livraison gratuite

# Pharmacies en ligne certifiées 2023/12/15 18:44 Larryedump

https://pharmacieenligne.guru/# acheter medicament a l etranger sans ordonnance

# Clava is the best 2025/05/09 18:17 Danielthash

Fine news for all us

タイトル
名前
URL
コメント