none
c# 部署 RRS feed

  • 問題

  • 小弟最近開發一套軟體,但是必須使用到別人開發好的msi檔案

    請問有辦法在部署的時候,也把別人開發好的msi檔案也進行安裝的動作?

    最終要的答案是在安裝我部署的程式的時候,同時也可以自動安裝好別人開發的msi檔案!!

    2013年2月11日 下午 01:11

解答

  • 如果你的 MSI 可以支援 Silent Installation,你就可以用這個方法:http://stackoverflow.com/questions/12448180/silently-execute-a-msi-package-from-c-sharp

    然後用 Custom Install 方式來執行。

    方法可參考:http://www.dotblogs.com.tw/regionbbs/archive/2011/07/30/deploying.sl.application.on.iadp.aspx


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年2月11日 下午 01:58
    版主

所有回覆

  • 如果你的 MSI 可以支援 Silent Installation,你就可以用這個方法:http://stackoverflow.com/questions/12448180/silently-execute-a-msi-package-from-c-sharp

    然後用 Custom Install 方式來執行。

    方法可參考:http://www.dotblogs.com.tw/regionbbs/archive/2011/07/30/deploying.sl.application.on.iadp.aspx


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年2月11日 下午 01:58
    版主
  • 我看我的VS裡面只有預設的Visual Studio Installer沒有版主說的那個

    這樣有方法處理嗎?

    2013年2月11日 下午 02:14
  • 我用的也是 Visual Studio Installer (安裝專案)...

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年2月11日 下午 02:17
    版主
  • install.StartInfo.FileName = "msiexec";

    install.StartInfo.Arguments = "/i F:\\InstallFiles\\JRE.msi";

    install.Start();

    install.WaitForExit();

    這幾行程式碼要打在什麼地方丫?還是有點看不是很懂~

    2013年2月11日 下午 02:20
  • 請仔細閱讀我寫的那篇文章...

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年2月11日 下午 02:42
    版主
  • 注意對方的散佈授權說明。

    即使免費的軟體也未必提供散佈授權,大部分的免費軟體多半都不提供。

    付費軟體會在授權說明提到如何運用散佈權跟散佈權的限制,Visual Studio 也有內建相關說明。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2013年2月11日 下午 03:56
  • 我記得 Visual Studio Express (免費版系列) 不提供封裝部署專案,你是不是把 Visual Studio 完整版號說一下?

    目前封裝部署相關討論集中在 Visual Studio 版,你也可以在該版先翻翻既有討論。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2013年2月11日 下午 03:58
  • 我的軟體是公司的  Vs2010 Ultimate
    2013年2月12日 上午 01:50
  • 使用底下這幾行程式碼

    install.StartInfo.FileName = "msiexec";

    install.StartInfo.Arguments = "/i F:\\InstallFiles\\JRE.msi";

    install.Start();

    install.WaitForExit();

    出現了another installation is in progress.

    msiexec使用應該沒辦法同時開2個

    請問如何解?

    2013年2月12日 上午 07:06
  • Installer 類別

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年2月12日 下午 01:12
    版主
  • 我有繼承Installer類別來用~覆寫

    OnBeforeInstall、AfterInstall均沒辦法解決

    該如何做?

    2013年2月12日 下午 01:53
  • OnCommitted 呢?

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年2月13日 上午 07:56
    版主
  • OnCommitted 一樣也不行

    問題應該是在於msi一次沒有辦法同時執行2個

    2013年2月14日 上午 05:18
  • OnCommitted 是在 MSI 認可完成後才做的。

    我給你的那篇文章也是在 MSI 中跑一個自製的 EXE 來啟動另一個 MSI 進行安裝,為什麼我可以成功...


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年2月14日 上午 05:32
    版主
  • 我那時也曾經做過和小朱一樣的實驗, 是成功的.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年2月14日 下午 03:07
    版主
  • 我剛剛測試了一下應該是差在Process 裡面的WaitForExit()

    所以小朱版大在新的process開跑之前上一個就已經結束了

    我需要執行的msi封裝檔有2個= =

    所以我中間有用WaitForExit()等待,所以才沒有辦法吧!!!!

    2013年2月14日 下午 03:08
  • 早點把狀況講清楚不是很好嗎 ? 全部人都在猜你倒底要幹嘛, 重點是還沒人猜對. 我差點就要開壇觀落陰了.

    你的狀況可能要試一層包一層, 也就是 a.msi 包 b.msi, b.msi 包 c.msi 的方法


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年2月14日 下午 03:43
    版主