在卸载或升级之前运行自定义操作

时间:2019-04-27 06:29:20

标签: c# visual-studio wix wix3.5 wix3

我试图在升级或卸载我的应用程序之前执行自定义操作(在删除文件之前,因为我必须将数据库文件复制到另一个目录中)

问题-我可以从控制面板中卸载它,但在升级时却无法运行。升级时,安装程​​序过早终止,旧版本为也将被删除。

这是我的代码-

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>

<Binary Id="secondAction" SourceFile="..\Migrations\bin\Debug\Migrations.CA.dll" />

<CustomAction Id="secondActionId"
              BinaryKey="secondAction"
              DllEntry="Migrate"
              Execute="deferred"
              Return="check" />

<InstallExecuteSequence>
   <Custom Action="secondActionId" Before ="RemoveFiles">(REMOVE~="ALL") OR (WIX_UPGRADE_DETECTED)</Custom>
</InstallExecuteSequence>

1 个答案:

答案 0 :(得分:0)

不是在RemoveFiles之前运行而是在InstallValidate之后尝试运行。我相信RemoveFiles仅在卸载时发生。将在删除现有产品之前进行InstallValidate。