我已經使用了幾周的WiX,但仍然很難獲得有關應該如何工作的良好信息。其中之一是伐木。我要求安裝程序將日誌文件寫入特定位置,而用戶不必添加任何/ l命令行參數。我看到有一個Log命令,但它的父項是Bundle,它是創建捆綁軟件包的根元素。我有一個簡單的安裝程序,所以可能不需要我的情況。這應該很簡單,對吧?WiX Toolset默認日誌文件位置
回答
。這是最簡單的解決方案(如果我是你,我會做這個) - 創造出執行以下命令的批處理文件:
msiexec MyProduct.msi /L*V "%TEMP%\MyProduct.log"
編輯在批處理文件到您要自定義路徑的路徑。
。您可以使用MSILogging Property在命令行外設置日誌記錄。但是,此屬性僅適用於Windows Installer 4.0。
基本上,你需要在你的內部添加一個新的屬性。WXS文件:
<Property Id="MsiLogging" Value="voicewarmupx!"/>
v
- 詳細輸出o
- 外的磁盤空間不足消息i
- 狀態消息c
- 初始UI參數 個
e
- 所有錯誤消息w
- 非致命警告a
- 啓動操作r
- - 具體行動,記錄
m
- 非內存或致命的退出信息u
- 用戶請求p
- 終端屬性!
- 將每行刷新到日誌x
- 額外調試信息
這將確保該日誌文件將會保留l在%temp%文件夾中創建,日誌文件的名稱將類似於「MSI * .LOG」。日誌文件的完整路徑可以從此屬性中讀取,並且可以從MsiLogFileLocation中讀取。但MsiLogFileLocation屬性是隻讀的,無法設置。
現在這不符合您在自定義位置創建日誌文件的要求,因爲我們無法設置日誌文件位置。我們無法在WIX中設置日誌文件位置的原因是因爲我們需要告訴MSIEXEC在Windows安裝程序引擎實際開始執行MSI之前將日誌文件寫入哪裏。
要解決此問題,您可以執行的一項操作是添加自定義操作並將日誌文件從%temp%文件夾複製到所需的文件夾。這將是這樣的:
<CustomAction Id="CopyLogFile" Execute="immediate"
ExeCommand="cmd /c copy [MsiLogFileLocation] C:\customlocation\MyProduct.log"
Directory="TARGETDIR"
Impersonate="no"
Return="asyncNoWait" />
<InstallExecuteSequence>
<Custom Action="CopyLogFile" OnExit="success" />
</InstallExecuteSequence>
我開始明白爲什麼複雜性存在。我會試一試你的解決方案,它似乎是最接近潛在解決方案的東西。我將不得不弄清楚如何調整它,但由於我昨天得到的另一個要求是我們永遠不會覆蓋日誌文件。所以我必須將其複製到自定義位置並在最後按順序編號標記。我們目前的安裝程序以這種方式工作,但這是在InstallShield中完成的。只要我能確認,我會盡快給出答案。謝謝。 –
如果這對你有幫助,請將其標記爲答案。 – Isaiah4110
您可以將捆綁包作爲單個安裝程序的包裝,並讓安裝程序在安裝期間顯示其自己的界面。這應該很容易做到,也許是正確的行動方式。如果能讓您輕鬆地完成您所需的任務,我確實不會看到有一包1包的問題。
除此之外,安裝程序需要在啓用日誌記錄的情況下調用,另一個選項是通過註冊表爲Windows安裝程序啓用全局日誌記錄 - 但這可能不適合您的需要,需要在您的安裝程序運行。
那麼你是說,即使對於捆綁包,如果用戶沒有指定/ l來啓動日誌記錄,它不會創建一個日誌文件? –
不,捆綁軟件默認爲捆綁軟件本身和所有捆綁的安裝程序創建日誌,並記錄到%temp%目錄,但可以使用鏈接的Log元素覆蓋該位置。 –
- 1. 默認的phing日誌文件位置?
- 2. Android崩潰日誌默認位置
- 3. Jenkins:更改窗口中的默認日誌文件位置
- 4. 如何更改數據和日誌文件的默認位置?
- 5. Django設置默認日誌
- 6. Wix:複製日誌文件
- 7. Wix Toolset複製文件問題
- 8. BURN:自定義日誌文件位置
- 9. agetty日誌文件位置
- 10. GDB日誌文件位置
- 11. 日誌文件的位置
- 12. IISExpress日誌文件位置
- 13. Linux(CentOS)默認FTP(SFTP)日誌文件?
- 14. Pymongo默認日誌
- 15. 如何更改mule應用程序日誌文件的默認位置?
- 16. 配置文件的默認位置 - MacOS?
- 17. 在默認cstr設置日誌路徑
- 18. WiX和WiX Toolset有哪些限制?
- 19. Winston日誌的默認位置是什麼?
- 20. MSBuild日誌的默認位置是什麼?
- 21. SharePoint/MOSS的默認日誌位置在哪裏?
- 22. Confluent 3.3.0不能更改默認日誌目錄位置
- 23. Wix Toolset安裝C++ 2010 Redistributable
- 24. Wix Toolset安裝可選組件
- 25. WIX寫自定義日誌文件
- 26. 更改vb.net的默認文件位置
- 27. 的Web.config更改文件默認位置
- 28. 加載文件,netbeans的默認位置
- 29. 的MSBuild日誌文件的位置
- 30. solr中的日誌文件位置
更新:所以最後搜索高和低後,結果創建一個自定義的BA用戶界面是答案。這意味着創建一個包含所有默認對話框等的整個框架,但是WiX源代碼確實有一個很好的起點。在捆綁包中有一個Log命令,您可以告訴它使用環境變量來獲取日誌位置,我使用Temp –