2012-05-22 52 views
7

我想在安裝後使用InstallShield運行我的exe。 InstallShield正確完成設置,但不運行該exe。使用installshield在安裝後運行解決方案exe

我找到了另一種方式來啓動中添加一個exe文件,但重啓後運行。 我希望它在沒有重新啓動的情況下運行。

可能嗎?

+1

這與asp.net有什麼關係? – Aristos

+1

什麼都沒有。 EXE是一個C#應用程序也沒有關係。標籤已移除。這也有助於瞭解正在使用InstallShield的版本,版本和項目類型。 –

回答

15

您使用的是InstallShield的版本和版本?你還使用什麼項目類型? (?InstallScript中,安裝InstallScript MSI,基本MSI)

假設基本MSI,InstallShield將有一個內置的方式來支持這樣一個故事:

1)點擊項目助理選項卡

2)點擊安裝採訪圖標(頁)

3)單擊Yes(是)「你想給用戶選擇安裝完成?

4)單擊瀏覽按鈕選擇EXE時啓動您的應用程序,壽ld是操作的目標。

由安裝完成對話框上默認的複選框(啓動程序)將不會被選中。選擇它會自動將屬性LAUNCHPROGRAM添加到屬性表中並將其設置爲值'1'。

+1

我遵循這些步驟,我的應用程序啓動。但是UI不顯示。但是,如果我點擊桌面上的捷徑,UI就會出現。我不知道我錯過了什麼,因爲我是新手。 – skb

+0

我猜你的應用程序對工作目錄很敏感,而且它是由你的快捷方式提供的。 –

4

克里斯托弗畫家的回答會爲你工作的大部分時間。這些是要採取的最初步驟,但如果您發現這些還不夠,還會提供一些其他詳細信息。例如,skb報告說這不適合他。我發現我在同一條船上(儘管我已經建造了十幾個安裝這個工作的安裝者!)。

  1. 跟隨克里斯托弗畫家的指點。
  2. 單擊「安裝設計器」選項卡。在「用戶界面」中選擇「對話框」。
  3. 在「所有對話框」中,展開「SetupCompleteSuccess」,然後選擇「行爲」。
  4. 選擇「確定」按鈕控制。然後,選擇「事件」。 (查看屏幕底部的事件/訂閱/條件)
  5. 您應該有一個「DoAction」事件,其中「參數」等於「IS_LAUNCH_MY_PROGRAM_PLEASE」和「條件」爲「LAUNCHPROGRAM」。如果沒有 - 添加。 「LAUNCHPROGRAM」是指該名稱的財產。如果啓動複選框處於選中狀態,則它的值爲1,因此符合此條件。 IS_LAUNCH_MY_PROGRAM_PLEASE引用啓動的自定義操作。如果你願意,你可以在這裏改變這個CA來讓任何自定義動作取而代之。我選擇離開這一點,但用我自己的一個替換CA。
  6. 打開自定義操作列表(行爲和邏輯...自定義操作和序列)。你應該找到一個名爲IS_LAUNCH_MY_PROGRAM_PLEASE的CA.刪除它!
  7. 添加自己的IS_LAUNCH_MY_PROGRAM_PLEASE CA.右鍵單擊「自定義操作」(列表標題)並選擇所需的CA類型 - 或啓動向導。如果您保留默認的對話行爲,請務必將其命名爲「IS_LAUNCH_MY_PROGRAM_PLEASE」。
  8. 要啓動一個exe - 與工作目錄改變(這是我的應用程序將不會出現的原因,顯然SKB的以及基於該評論)中選擇「新建EXE」 ......「路徑參考目錄」。將「返回處理」更改爲「異步(不等待完成)」。請注意,「MSI類型號碼」將變成226.將「工作目錄」設置爲INSTALLDIR(假設您要啓動的程序應在新程序的目錄中找到)。將「文件名&命令行」設置爲[INSTALLDIR]YourApp.exe
+0

或者,您可以將其應用程序修復爲不受工作目錄敏感。 –

+0

這是真的......但這並不一定更快,更容易。設置工作目錄對於啓動其他進程的任何事情來說都是一個普遍的特性,爲什麼在IS中也有一個選項。重新設計程序解析相對路徑的能力,以安撫安裝程序?這似乎倒退了。其他安裝人員通常會做這個小事。您不應該緊密耦合到您的安裝程序。 – BuvinJ

+0

我會爭辯說,圍繞應用程序缺陷安裝補丁是向後的。讓安裝程序將工作目錄設置爲緊密耦合。而且它可能更快更簡單,因爲開發人員問這個問題可能會更好地理解他的應用程序,然後他會安裝他的安裝程序。 –

相關問題