簡體   English   中英

Visual Studio Installer UI集成

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM