2011-10-27 20 views
0

我必須使用Wix讀取ini文件。這個ini文件是由安裝程序自己通過自定義操作(一個exe文件生成ini文件)創建的。
問題:AppSearch(讀取ini文件的位置)是InstallUISequence的第一步。
即使我在AppSearch之前調用CA,我也會得到一個錯誤,因爲當我嘗試讀取ini文件時,它還沒有創建..(在CA中返回=「asyncWait」)。
這裏是呼叫:使用Wix讀取ini文件時的排序問題

<InstallUISequence> 
    <Custom Action="LaunchCA" Before="AppSearch" /> 
</InstallUISequence> 

有沒有解決方案?謝謝!

回答

0

Windows安裝程序INI僅搜索C:\ Windows文件夾中的文件。所以使用搜索是不可行的。

取而代之,您可以嘗試使用custom action(由您編寫的自定義代碼)來讀取文件。我假設你想將結果保存在一些安裝程序屬性中。所以你的自定義動作將需要接收安裝句柄。

+0

是的,我知道。我的問題是,在c:\ windows中生成ini文件的應用程序在Wix inifilesearch之後運行... –

+0

在軟件包啓動後立即在C:\ Windows中寫入每個機器位置的文件不是一個好主意。這就是INI搜索不可行的原因。相反,您可以將該文件寫入臨時文件夾(例如當前用戶Temp文件夾)。您的自定義操作可以讀取該文件。 –

0

所以,你需要的是訪問生成的INI文件中的數據,對吧?你是否控制EXE輸出數據的方式?

如果這樣做,您可以將該數據轉儲爲INI文件,而不是轉儲到自定義MSI表。之後,您的CA讀取INI文件的內容不必等待它被創建,您將擺脫AppSearch依賴關係。