none
請問部署專案(.msi) RRS feed

  • 問題

  • 請問各位先進,小弟我在vs 2003用c#寫個小程式(windows form)

    加入部署專案時的時候,必需要幫對方再安裝一個msi檔(因為這是必要安裝,但這是別人寫好的,故沒有source code)

    所以又寫了一個小專案裡面的class只是單純

       Process msiexec = new Process();
       msiexec.StartInfo.FileName = "msiexec.exe";   
       msiexec.StartInfo.Arguments = "/i 必要安裝.msi";
       msiexec.Start();

    再把2個專案加入部署專輸出,而且在安裝畫面時我有一個"核取方塊"提醒user說我會安裝這個msi,但在安裝我的msi過程中總是得到一個error 寫"無法開啟此封裝。請確認此包裝是否存在,或其是否為正常的windows installer封裝"

    但我確實有把那個msi檔案加入部署唷。

    請問是否不能在同一個msi安裝中 再安裝另一隻msi?

    如果不行,請問我該如何解決它呢?先謝謝各位的回應

    2006年6月30日 上午 07:21

解答

  • 1. 可能的話,看能不能向原作者要到 msm (Windows Installer 共用模組)

    2. 或者,你可能需要在自訂動作來處理這件事情

    3. 還要確定你的 msi 的路徑是正確的 .

    2006年7月1日 上午 01:25
    版主

所有回覆

  • 1. 可能的話,看能不能向原作者要到 msm (Windows Installer 共用模組)

    2. 或者,你可能需要在自訂動作來處理這件事情

    3. 還要確定你的 msi 的路徑是正確的 .

    2006年7月1日 上午 01:25
    版主
  • to 小朱:

    謝謝您的回覆,我的確是在自訂動作來處理這件事情的,而msm並沒有辦法要到(這個封裝檔其實是MicroSoft所發怖的)

    最後的路徑問題,我試過把必要安裝.msi 先不要加入自已的.msi,但安裝時發現還是無法順利執行,都會找不到該路徑。

    我再說明一下我的方案有4個專案:

    1.自已的主程式

    2.小程式(setupmsi)啟動用Process.strat 來執行msiexec.exe

    3.安裝專案(自訂動作透過核取方塊來啟動2號小程式輸出檔)

    4.uninstall專案

    我觀察結果是安裝過程中,會先輸出"2號專案輸出檔",故我的setupmsi.exe找不到"必要安裝.msi" (我確信有把msi檔案放入安裝專案了!)

    而且自行到程式集執行2號輸出檔都會正常安裝..請問這要怎麼解決呢?

    難道真的要寫bat檔 一個一個灌嗎...*_*

    2006年7月3日 上午 10:54