[英]Visual Studio Installer UI integration
是否可以為Visual Studio 2013安裝程序項目( https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d )創建自定義UI? setup.exe和.msi有什么不同? 是否有一個很好的例子來解釋VS安裝程序?
任務是創建VS2013之類的安裝程序,它從Web下載最新文件(URL是硬編碼的)。 據我所知,setup.exe應該從網上獲取最新的.msi文件,下載並運行它? 因此,需要以某種方式定制setup.exe。 那可能嗎?
如果此擴展實際上具有與VS2010安裝程序項目相同的功能,則此類UI擴展性不存在。
簡單定制的能力非常有限,但實際上非常有限。
如果您需要一個漂亮的UI,那么您應該有一個在安裝后運行的程序,以便與執行安裝的人員進行交互。
在VS設置世界中,setup.exe是一個安裝先決條件然后運行MSI的引導程序。 如果您沒有先決條件,則不需要setup.exe。
還有其他工具可以讓您自定義UI - 只是VS不支持它。 像WiX和(完整)InstallShield這樣的工具允許您在MSI對話框的功能中構建自己的UI。 如果只安裝了一個MSI文件,那通常就是人們所做的一切。
請注意,MSI對話框與.NET對話框或控件無關 - 這就是它們非常基本的原因。 那里沒有C#,只有MSI內部支持的控件和對話框。 您根本不能使用自己的C#對話框。
如果您要安裝多個MSI文件,就好像它是單個產品(我相信SQL Server,Office,Visual Studio),那么您需要一個包裝器(WiX具有Burn引導程序,InstallShield有一個chainer)來制作它看起來像一個單一的設置。 如果是這種情況,或者您希望自己擁有完全自定義的C#對話框UI,那么您可以編寫自己的 - 或者像這些人一樣構建WiX框架:
http://www.wrightfully.com/part-1-of-writing-your-own-net-based-installer-with-wix-overview/
http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/
該架構基於以下內容:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb309215(v=vs.85).aspx
和MsiSetExternalUIRecord。 基本上,您編寫代碼來安裝一個或多個MSI,而Windows Installer在安裝期間為每個事件調用代碼。 這是您擁有自己的啟動對話框的地方,Windows Installer將回調進度消息以供您顯示,以及錯誤,使用情況下的文件等。使用像WiX這樣提供大部分框架的工具更容易那。
所以它取決於你自定義對話框的含義。 如果您的意思是“不喜歡Visual Studio”或“我需要一個對話框來輸入VS不提供的東西”並且您有一個MSI要安裝,那么WiX,InstallShield,Advanced Installer和其他工具就可以做到這一點。 如果你的意思是“我想要我自己的完全自定義C#對話框”,那么你需要使用C#interop和MsiSetExternalUIRecord編寫自己的,或者使用WiX boostrapper,我相信這是唯一一個 - 如果那是錯的,請糾正我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.