VS.net 安裝包製作 個人經驗記錄

來源:互聯網
上載者:User

http://www.cnblogs.com/jason_lb/archive/2009/06/24/1509362.html

1.添加項目輸出

在檔案系統編輯器中,如果項目在一個解決方案中,則可以添加項目的主輸出,為自動識別添加產生的exe,config,dll引用等;項目經常還包括一些資源檔,片,xml等,這些設定為內容的話,則可以添加項目的內容檔案;如果還有一些特殊檔案添加,比如第3點說到msiexec.exe檔案,則可以直接瀏覽添加。

 

2.如何使新產生的安裝包在安裝時自動覆蓋以前安裝過的版本

設定部署項目屬性RemovePreviousVersion為True,並將Version升高,並在產生時提示的“建議在更改版本時更改ProductCode,要進行該操作嗎?”選擇是。

 

3.如何添加卸載

找到msiexec.exe檔案,一般在windows/system32下,添加到檔案系統中,可以改名為UnInstall.exe,然後設定其捷徑,最好重新命名捷徑並放到程式目錄中,並設定其Arguments屬性值為/x {[ProductCode]},這裡用[ProductCode]可以自動擷取安裝包的ProductCode,網上多數讓你直接拷貝部署項目的ProductCode,但是第2點提到了ProductCode是會變的。(ProductCode變是為了覆蓋安裝,ProductCode不變是為了檢測升級)

 

4.如何在安裝整個過程中實現自訂動作

首先需要建立一個類庫項目,然後在其中添加安裝程式類,根據需要添加相應的重寫方法

 例如要在安裝完成後啟動程式,可以這樣寫

protected override void OnAfterInstall(IDictionary savedState)
        {
            string appPath = Context.Parameters["targetdir"];
            Process.Start(appPath + "XXX.exe");
            base.OnAfterInstall(savedState);
        }

 Context.Parameters["targetdir"]為擷取安裝路徑,需要在部署項目中設定

 其次,在部署項目的自訂動作中,把安裝,提交,復原,卸載都添加上面項目的主輸出

設定主輸出的屬性CustomActionData值為/targetdir="[TARGETDIR]\",這樣Context.Parameters["targetdir"]才能擷取到安裝路徑。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.