■69776 / inTopicNo.7) |
Re[5]: セットアップの修復機能について |
□投稿者/ とっちゃん (189回)-(2014/01/29(Wed) 11:32:48)
|
■No69765 (焦げ太 さん) に返信
> 結局原因がわからないため、「プログラムの追加」に表示される > 「変更」を非表示にする方向でいくことにしました。 > 数値が格納されているなら(REG_DWORDのエントリーを検索したなら) #1 などという形でプロパティに取り込まれるはずなんですけどねぇ。。。
http://social.msdn.microsoft.com/Forums/vstudio/ja-JP/3e4e02e3-5c7e-4d15-adc6-08406a38d423/condition?forum=vsgeneralja
VS2005の頃のものですが、同じような質問に回答していたのがあったのでリンクを張っておきます。 参考にはならなそうですけど。。。
あと、レジストリ検索に関する部分のリファレンスも http://msdn.microsoft.com/en-us/library/aa371171.aspx
Condition に、REGISTRY_TEST="#1" と書いていて、うまくいかないとなるとおそらくVSセットアップでは設定できないような 状態判定が必要になると考えられますが、それがなにかについては正直わかりません。
このあたりまで来ると、おそらく現物と状況を照らし合わせてガチで調査しないと解決には持っていけない気がします。 (そしてそのレベルになるといろいろ知らなくていい情報まで入ってきてしまうので掲示板では実現不可)
あと、修復を直接呼び出した場合は、UIシーケンスが動きません。 もしかすると、UIシーケンスが動いた場合だけうまくいかない何かがあるのかもしれません。
> ログで気になるところがありまして… > 「Component:…」と出力されている個所ですが、、、 > > Conditionの結果がFALSEのものはどちらも同様にログが書かれていました。 > Conditionの結果がTRUEのものはActionが「Local」と「Absent」で異なる内容が書かれていました。 > > 【正常に動作する修復】 > Component: C__2DXXX; Installed: Local; Request: Null; Action: Null <--Conditionの結果がFALSEのもの > Component: C__30XXX; Installed: Local; Request: Local; Action: Local <--Conditionの結果がTRUEのもの > > 【削除されてしまう修復】 > Component: C__2DXXX; Installed: Local; Request: Null; Action: Null <--Conditionの結果がFALSEのもの > Component: C__30XXX; Installed: Local; Request: Local; Action: Absent <--Conditionの結果がTRUEのもの > > 調べるとAction: Absentはアンインストール時に出力され、 > RequestとActionは基本同じになるはずと… > > "削除されてしまう修復"のほうでは Request: Local; Action: Absentと > RequestとActionで内容が異なります。 > > なぜこういう事象になってしまうのかが判らず、どういう手段で原因を突き止めたら > よいかも判らずにいます。 > こちらだけ。
> Component: C__2DXXX; Installed: Local; Request: Null; Action: Null <--Conditionの結果がFALSEのもの ここの読み方とパターンを書いておきます。
Component: <コンポーネント名>; Installed: <現在の状態>; Request: <次にどうしたいか>; Action: <実際に行う内容> となります。
これらの値は、MsiGetComponentState の結果と、これから実行しようとするリクエストをログに表示したものとなります。 仕様としては、Null(INSTALLSTATE_ABSENT) や、Local(INSTALLSTATE_LOCAL) のほかにも値は存在しますが VSセットアップの場合でログとして出てくるのは、Installed と Request については、Null(未インストール),Local(インストール済み)の2種類 Action については、Null(何もしない)、Local(インストールする)、Absent(アンインストールする) の3種類になります。
|
解決済み
|