【问题标题】:How to execute Custom action in Wix after Uninstall completed卸载完成后如何在 Wix 中执行自定义操作
【发布时间】:2020-07-24 08:12:42
【问题描述】:

我已使用以下代码启用日志记录:

<Property Id="MsiLogging" Value="voicewarmupx!"/>

我想将日志文件从临时文件夹复制到自定义日志位置。 我已经编写了如下自定义操作

<CustomAction Id="CopyLogFile" Execute="immediate"
          ExeCommand="cmd /c copy [MsiLogFileLocation] [LogsFolder]"
          Directory="TARGETDIR" 
          Impersonate="no" 
          Return="asyncNoWait" />
<InstallExecuteSequence>
  Custom Action="CopyLogFile" OnExit="success"></Custom>

成功安装后上面的代码工作正常,但是当我卸载时代码不起作用。

有人请帮我在卸载后将文件从临时文件夹移动到特定文件夹。?

【问题讨论】:

  • 卸载时LogsFolder 的值是多少?
  • 自定义操作的顺序是什么?
  • HI @KlausGütter 我使用 C:\Users\public\PublicDocuments\Logs 作为“LogsFolder”顺便说一句我得到了解决方案下面的评论帮助我解决了这个问题。请参考下面的评论。

标签: c# wix windows-installer wix3.5


【解决方案1】:

指定卸载时调用自定义操作的条件:(REMOVE="ALL") AND NOT UPGRADINGPRODUCTCODE

这应该可行:

<CustomAction Id="CopyLogFile" Execute="immediate"
          ExeCommand="cmd /c copy [MsiLogFileLocation] [LogsFolder]"
          Directory="TARGETDIR" 
          Impersonate="no" 
          Return="asyncNoWait" />

<InstallExecuteSequence>
  <Custom Action="CopyLogFile" OnExit="success">(REMOVE="ALL") AND NOT UPGRADINGPRODUCTCODE</Custom>
...

查看您可以在Microsoft Docs 中使用的完整属性参考。

【讨论】:

  • 我很高兴它做到了!请将问题标记为已回答以供其他人参考:)
猜你喜欢
  • 2013-06-29
  • 1970-01-01
  • 2017-11-29
  • 2013-03-08
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多