我想用wix 3.8來做一個安裝程序。我可以使用自定義屬性來存儲我自己的輸入,但是我想使用輸入先前安裝的msi的值。 有沒有辦法完成這樣的事情?Wix - 如何從以前安裝的msi獲取用戶輸入?
回答
爲了讓你在正確的方向添加這個(當然它適應您的需求放在首位)在你的拳頭MSI:
<DirectoryRef Id="INSTALLDIR">
<Component Id="RegistryEntries" Guid="{0AC76129-F8E2-47D3-B9FD-09B1E10A8541}">
<RegistryKey Root="HKLM" Key="Software\Company123\App123" Action="create">
<RegistryValue Type="integer" Name="SomeIntegerValue" Value="1" KeyPath="yes"/>
<RegistryValue Type="string" Name="UserInput" Value="[USERINPUT]" />
</RegistryKey>
</Component>
</DirectoryRef>
不要忘記引用該組件在<Feature>
<ComponentRef Id="RegistryEntries" />
當您安裝例如,爲屬性[USERINPUT]
賦值msiexec /i your.msi /qb+ USERINPUT="the value to be saved in registry"
然後在第二個MSI添加這樣的:
<Property Id="READREGISTRY">
<RegistrySearch Id="USERINPUT_Value" Root="HKLM" Key="Software\Company123\App123" Name="UserInput" Type="raw" />
</Property>
你安裝USERINPUT=
時輸入的值/字符串將存儲在你的第二個MSI在物業READREGISTRY
這裏一片登錄我的第二個msi:
PROPERTY CHANGE: Adding READREGISTRY property. Its value is 'testing registry wef wef wef w'.
根據您的安裝位置它可能是每個我們呃或每臺機器上,您可以調整Root到HKCU以進行PerUser安裝,或將其留給PerMachine的HKLM。
欲瞭解更多信息,請參閱維克斯文件,提示:「如何:編寫一個註冊表項,在安裝過程」和「如何:讀取註冊表項安裝過程中」。
創建它獲取第一MSI安裝中的自定義操作,然後寫你想要到一個文件或註冊表中的值/用戶條目。在您的最終MSI中讀取來自注冊表/文件的值並使用它。
這裏是你如何讀取來自用戶的價值和更新您的app.config一個例子,這是不是一個蘋果對蘋果的場景,但是這將引導您完成它。
http://bensnose.blogspot.com/2013/03/more-custom-actions-with-wix.html
免責聲明:我還沒有嘗試過什麼是在這個博客帖子中提到,但我做的事情非常相似,並發現它具有很好的解釋,這就是爲什麼我張貼的鏈接。
一般來說,沒有。不需要Windows Installer軟件包來記錄它從用戶那裏得到的輸入。有些人會在註冊表中記錄一些信息,您可能會選擇依靠在那裏找到它。
作爲替代方案,你可能會發現,其他的安裝程序可以在沒有用戶界面運行,並且可以傳遞給它的性能充分控制。如果是這樣,您可以編寫自己的用戶界面(一種方式是定製的WiX Bootrapper應用程序 [example])以在運行安裝程序之前收集輸入。
- 1. 安裝/ MSI - 多用戶輸入目錄
- 2. 如何獲取用戶在安裝WIX時輸入的屬性值?
- 3. VS或WIX MSI安裝 - 顯示序列號從第一安裝
- 4. Wix:從另一個MSI安裝和配置MSI軟件包
- 5. 從安裝程序類中獲取當前msi安裝文件的名稱
- 6. 如何從Wix#MSI安裝程序註冊VSTO加載項
- 7. WiX安裝程序包含msi的dll
- 8. 如何使用wix bootstrapper修改msi的安裝功能?
- 9. 刪除以前在WiX上的安裝
- 10. Wix Burn,忽略以前安裝的包
- 11. Wix條件不會阻止安裝msi
- 12. wix捆綁只安裝更改msi
- 13. 如何從使用wix創建的.msi文件安裝Web應用程序?
- 14. 如何停止.MSI安裝使用wix自定義操作
- 15. 如何使用wix在msi安裝程序中包含文件?
- 16. 如何使用WiX創建.msi安裝程序
- 17. 如何在MSI安裝程序中搭載MSI安裝程序
- 18. wix:安裝開始前運行外部msi
- 19. MSI安裝程序無法刪除以前的安裝失敗
- 20. 獲取產品安裝的Msi代碼
- 21. MSI安裝程序使用WiX以靜默模式調用另一個MSI安裝程序
- 22. Wix靜默安裝MSI可以阻止目錄的創建
- 23. WIX工具集 - 根據用戶輸入安裝先決條件
- 24. 是否可以從msi獲取現有安裝的詳細清單?
- 25. 如何在實際運行安裝之前提取Wix啓動程序嵌入式msi?
- 26. 如何允許用戶在msi安裝windows服務期間輸入值vb.net
- 27. 安裝前安裝WiX檢查文件
- 28. MSI/Wix安裝程序,安裝或升級
- 29. Wix安裝程序在主要安裝完成後運行msi
- 30. 如何從MSI內部(使用WiX)升級Windows安裝程序?可能嗎?
非常感謝你,這正是我一直在尋找。 – Hahn