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