2013-04-20 49 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自定義操作。