2017-01-10 4 views
0

ソフトウェアを起動しようとしています。インストール後にいくつかのパラメータでインストールして初期化タスクを実行します。最初のインストールの後で、アップグレード後ではなく、カスタムアクションを起動します。Wixは最初のインストール後にソフトウェアをインストールします。アップグレード後ではありません。

次のコードは、最初のインストールとアップグレードの両方の後にcustumアクションを起動します。

<CustomAction Id="MyAction" 
    Directory="TARGETDIR" 
    ExeCommand="[INSTALL_ROOT]MySoft.exe myarg" 
    Execute="immediate" 
    Return="ignore" 
    Impersonate="yes" /> 
<InstallExecuteSequence> 
    <Custom Action="MyAction" After='InstallFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom> 
</InstallExecuteSequence> 

問題は何ですか?

答えて

2

MSIを実行し、msiexec/I [path to msi]/l * vx [ログファイルへのパス]を使用してログを作成し、カスタムアクションが呼び出されたときとそのログが何を示すかを調べます。

昇格した特権が必要なためにプログラムが起動してクラッシュしたかどうか知っていますか?おそらく、プログラムの実行結果が表示されないことがあるため、インストールが間違っていると仮定していますが、どのように分かったのでしょうか?ログはそれを実行しようとしたかどうかを示し、return = ignoreと表示すると、失敗してもインストールが実行されることに注意してください。

「アップグレード後」とは、これがアップグレードMSIであることを意味します。アップグレードが行われているときにUPGRADINGPRODUCTCODEが設定されているため、条件が正しくないことを意味します。これがアップグレード設定の場合は、条件としてWIX_UPGRADE_DETECTEDが必要です。

+0

Thx! WIX_UPGRADE_DETECTEDは私が必要としたものです。そして、ログのヒントについては、やっぱり、デバッグには非常に便利です。この[他の投稿](http://stackoverflow.com/questions/18531272/how-do-i-distinguish-between-a-normal-install-and-an-upgrade-in-wix)は、異なるシナリオ。 – skuallpa

関連する問題