質問

したがって、アプリケーションのインストールが完了した後(実際には、インストール中にインストールされたファイルと相互作用しないため、セカンダリアプリケーションを実行するときは実際には問題ではありません)、別のアプリケーションにバンドルされているプログラム。適切なコード(<!> quot; ... <!> quot;で置き換えられたさまざまなもの:

<directory ...>
  <component ...>
  <File Id="IDINST" ... />
  </component>
</directory>
...
<CustomAction Id="IDACTION" FileKey="IDINST" ExeCommand="..." Return="ignore" />
...
<InstallExecuteSequence>
  <Custom Action="IDACTION" After="CostFinalize" />
</InstallExecuteSequence>

ディレクトリを確認したところ、ファイルは予想した場所にありましたが、インストールプロセス後に実行されませんでした。実際、そのファイルをインストールしたくはないので、実行してから削除するだけです。しかし、私は今のところそれを無視します。とにかく、ダイアログの後にアクションをトリガーする例を見てきましたが、現在<UIRef Id="WixUI_Minimal" />を使用しているので、それは理想的ではないと思います。

役に立ちましたか?

解決

CostFinalizeは、InstallFiles遅延アクション(実際にファイルを配置する)が実行されるずっと前に発生します。したがって、CustomActionは(ファイルが使用できないため)サイレントに失敗します(Returnが無視されるため)

少なくともInstallFilesの後にCustomActionをスケジュールして遅延するか、CustomActionを遅延実行できない場合は、InstallFinalizeの後にする必要があります(もちろん、InstallFinalizeの後にロールバックすることはできません)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top