VS 安裝包製作

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"]才能獲取到安裝路徑。

原帖:http://blog.sina.com.cn/s/blog_488e6ca90100fyiq.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章