2011-07-13 69 views
4

我使用的是DLL來安裝打包在MSI內的驅動程序。當我爲InstallFinalize之後的自定義操作計劃成功時,但是如果我安排它,或者1)在InstallFiles之後2)在InstallFiles之後執行= deferred,3)在InstallFiles之後執行= deferred,impersonate = no或4)對於.inf文件,「文件未找到」失敗。Wix的自定義動作DLL依賴於執行時安裝的文件

我讀過This SO postthis page,但仍不明白我是如何讓我的驅動程序安裝的。

如果我在InstallFinalize之後使用,那麼如果出於某種其他原因返回錯誤,則不能中止安裝並且已經過時。

回答

3

根據this answer給你鏈接的問題,你應該在InstallFiles之後安排它,並使其延期。

在安裝過程中啓用詳細日誌記錄,您將能夠看到文件何時被複制到硬盤驅動器以及何時調用自定義操作。

InstallFinalized後,您的安裝已完成。

+0

我會再試一次,但延遲InstallFiles後也不起作用。我會打開詳細的日誌記錄,但到目前爲止它沒有工作。 –

+0

我已經找到了問題。如果我在InstallFiles之後延遲,那麼我無法從自定義操作中的wix會話中讀取安裝目錄。有沒有解決方法? –

+1

@Precision是的,您可以從延遲自定義操作訪問一組非常有限的屬性。有關更多詳細信息,請參見[獲取延遲執行自定義操作的上下文信息](http://msdn.microsoft.com/zh-cn/library/aa370543(v = VS.85).aspx),或搜索「_CustomActionData_」。簡而言之,您必須使用您的動作名稱創建屬性,並將其值設置爲您在自定義動作中需要的任何值。 –

相關問題