使用DTF扩展FilesInUse

本文关键字:FilesInUse 扩展 DTF 使用 | 更新日期: 2023-09-27 18:10:13

我有一个安装程序,我已经在一个属性(AppSearch扩展)中编写了一个简单的自定义操作来计算某个进程类型的计数,然后在LaunchConditions中使用该操作来控制安装程序。客户现在想要更丰富的体验,所以我试图重写一下,以触发FilesInUse对话框。

[CustomAction]
public static ActionResult DetectRunningProgram(Session session)
{
    var record = new Record(2);
    record[0] = null;
    record[1] = "Calc.exe";
    record[2] = "Calculator";
    session.Message(InstallMessage.FilesInUse, record);
    MessageBox.Show("TEST");
    return ActionResult.Success;
}

我在AppSearch之后安排了这个。我看到FilesInUse对话框得到显示,但它没有去模态。只要我取消TEST消息框,FilesInUse就消失了,我得到了InstallWelcome对话框。

我错过了什么?我没有使用外部UI…

使用DTF扩展FilesInUse

CostFinalize操作对于初始化Windows安装程序中的重要状态是必要的。Windows安装程序直到InstallValidate才处理FilesInUse,这是一个很好的提示。在CostFinalize之后安排您的自定义操作应该可以使一切正常工作。例如,WiX工具集中将记录添加到重启管理器的RestartResource自定义操作被安排在InstallValidate之前。