2017-02-18 38 views
0

我有一個Visual Studio安裝程序項目用於我的C#應用​​程序。它已被設置爲卸載我的應用程序的任何先前版本,安裝新版本,然後在安裝應用程序後運行。它將按預期到盡頭在那裏坐在最後的「請等待」的階段:一旦安裝並加載新版本,安裝程序不會退出

Example

在這一點上,我的應用程序的新版本已經安裝,它是很樂意運行,但是上面的屏幕截圖只是在那裏(完全響應),並且只有在我手動關閉了我的應用程序的新安裝版本後,纔會進入「安裝完成」窗口。

enter image description here

難道我做錯了什麼事與我的安裝項目的配置?我不希望人們爲了完成安裝過程而不得不關閉應用程序,只需要再次手動運行應用程序即可!這就是爲什麼我將安裝程序設置爲在安裝完成後自動運行新版本的原因!

回答

1

這似乎是使用Visual Studio安裝程序項目時的常見問題。下面的問題確定一個類似的問題:

Visual Studio Installer > How To Launch App at End of Installer

以下問題顯示瞭解決方案,但是有分歧它是如何建議:

Run exe after msi installation?

我雖然建議將是解決辦法如果可能,請嘗試使用WiX(http://wixtoolset.org/)來創作您的Windows Installer。與Visual Studio Installer項目相比,學習曲線可能有點陡峭,但一旦您對此感到滿意,您會發現您已經接觸到Windows Installer的許多功能以及一系列附加功能由Wix Toolset提供。對於WiX的文檔中給出瞭如何實現你想要做一個例子:

http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html

+0

感謝您的回答。目前,我剛剛刪除了「安裝後啓動」部分,因此安裝程序正在成功完成。理想情況下,我仍然希望我的應用程序在安裝後自動啓動,因此我將檢查WiX。我只有一個Exe才能在程序文件(另外還有一個開始菜單快捷方式)中轉儲,所以希望能夠有一些教程或者關於如何使用WiX來實現這個的指導。 – Rawns

+0

完全沒問題。這裏的文檔https://www.firegiant.com/wix/tutorial/進入了很多細節,以至於它可能有點壓倒性,但它很好地解釋了Windows Installer的概念,並且很好地理解了它們如果您想保持您的安裝可維修,可維護和可升級,這一點很重要。 –

2

,我還沒有看到明確提到的主要問題是,你的程序在年底運行安裝是同步的,所以安裝程序會等待它完成。如果你不想在改變你的項目維克斯至少有兩種解決方案:

  1. 而是直接運行程序的自定義操作,創建異步觸發了你的EXE另一個小的自定義操作和退出。

  2. Visual Studio安裝程序不允許像其他工具那樣設置異步設置,但可以通過打開MSI文件(使用Orca)並轉到CustomAction表來執行此操作。很可能您的自定義操作的類型爲3090.如果將其更改爲3282(添加192),則自定義操作將是異步的,並且安裝將完成。

相關問題