2013-04-20 47 views
0

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

[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对话框。

我错过了什么?我不只使用外部用户界面...本地用户界面。

+0

看来问题在于我过早地安排了自定义操作。在成本计算之后将其移至固定它。虽然有人(罗布)想填写“你不知道你不知道的细节”的细节,但我将不予理睬。 – 2013-04-20 19:53:29

+0

我现在拥有一切工作,包括根据需要添加多少个进程生成一个记录大小。 – 2013-04-20 20:49:56

回答

1

CostFinalize操作将有必要在Windows安装程序中初始化重要状态。 Windows安装程序不处理FilesInUse直到InstallValidate是一个很好的提示。在CostFinalize之后安排您的自定义操作应该可以使所有工作都可用。例如,在InstallValidate之前计划将WiX工具集中的记录添加到重新启动管理器的RestartResource自定义操作。