私は、次のMSIプロパティの値を検索するいくつかのカスタムアクションを使用してインストーラーに取り組んでいます。
- ADDLOCAL
- ADDDEFAULT
- 再インストール
- 削除する
フルUIでインストーラーを実行する場合、これらのプロパティには、ユーザーが選択したオプションを指定して、必要に応じてコンマ区切りの機能名のリストが含まれます。ただし、インストーラーをパッシブモードで実行するか、コマンドラインから基本UIのみ(またはUIなし)で実行すると、プロパティが空/空白であることがわかります。それらに値があるのは、コマンドラインから明示的に設定した場合のみです。これは許容できる回避策ですが、コマンドラインで値を渡す必要なしに、これらが「all」などのある種のデフォルトをとることができれば、はるかに優れています。WiX(MSIの構築に使用している)でこれを指定する方法はありますか、それともカスタムアクションコード(または完全に他の何か)で何かを行う必要がありますか?
ここでプロパティリファレンスを見てきましたが、これらのプロパティのデフォルト機能を指定する方法については何も言及されていません。
また、インストール中にコマンドラインでこのように機能を指定すると、アンインストール用にREMOVEプロパティに保存されているように見えます(つまり、アンインストール時にパラメータを渡す必要がないことも興味深いです。モード)。これは私が信頼できる機能ですか?後で誰かがインストールを変更した場合、自動的に更新されますか?
WiX 3.5.2519を実行していて、カスタムアクションコードにVisualC++でVisualStudio2010を使用しています。あなたが私に与えることができるどんな助けにも感謝します!
編集:
実際、私は間違っていました。コマンドラインで別の値を渡したり、機能のサブセットのみをインストールしたりしても、これらのモードのいずれかでアンインストールして実行すると、REMOVEプロパティは常に「all」に設定されているようです。これは壊れているようです。私はここで何か間違ったことをしていますか?
C:\> msiexec REMOVE=FeatureName /passive /l* uninstall.log /x Product.msi
「FeatureName」に指定したものを完全に無視し、代わりに「all」を使用します。