代码之家  ›  专栏  ›  技术社区  ›  Brian

使用WixUI_Minimal进行Wix自定义操作

  •  2
  • Brian  · 技术社区  · 17 年前

    因此,我试图在应用程序安装完成后(尽管事实上,运行辅助应用程序的时间并不重要,因为它在安装过程中不会与安装的文件交互),运行与应用程序捆绑在一起的另一个程序。相关代码(各种内容替换为“…”:

    <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" /> 我认为这并不理想。

    1 回复  |  直到 17 年前
        1
  •  5
  •   Rob Mensching    17 年前

    CostFinalize发生在InstallFiles延迟操作运行(实际放置文件)之前很久。因此,CustomAction正在无声地失败(因为文件不可用)(因为Return被忽略)

    您需要至少在InstallFiles之后安排您的CustomAction并将其推迟,或者如果CustomAction无法推迟运行,则必须在InstallFinalize之后进行(当然,它不能在InstallFinalization之后导致回滚)。

    推荐文章