我已經創建使用Visual Studio安裝程序(Visual Studio安裝項目)爲MyProgram的安裝空文件夾後面的樹葉。它被稱爲「MyProgram Setup.msi」。它安裝的程序很好,如果使用控制面板將其卸載,那麼所有東西都會被刪除。我已經爲MyProgram的安裝,但卸載快捷方式,它會創建
的問題是,我想一個快捷方式添加到「用戶的程序菜單」稱爲「卸載MyProgram」的程序快捷方式下。我試圖在3個不同的方式這樣做的,在所有3種方式如果MyProgram是使用快捷鍵卸載,卸載程序將落後2個空文件夾假(「...程序Files \ MyCompany的\」和」 ... Program Files \ MyCompany \ MyProgram \「)。
這裏是我試圖讓一個卸載程序快捷方式的3種方式:
1)的快捷方式批處理或腳本文件
卸載MyProgram.bat:
@ECHO OFF
msiexec /uninstall {MyGUID}
卸載MyProgram.vbs:
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("START /B msiexec /uninstall {MyGUID}")
Set objShell = Nothing
2)編輯使用Orca.exe的
MSI文件我發現瞭如何使用本指南要做到這一點:http://www.codeproject.com/KB/install/MSIShortcuts.aspx
我添加快捷方式輸入到快捷方式表。卸載工作但使用此快捷方式時仍然留下2個空文件夾。
3)從內MyProgram.exe代碼
我改性MyProgram.exe採取 「/卸載」 命令行參數來運行 「MSIEXEC.EXE /卸載{MyGUID}」 和退出本身。與此相似的解決方案:http://www.codeproject.com/KB/install/DeployUninstall.aspx
這些嘗試都沒有創建一個快捷方式,可以卸載的程序以及程序的基本文件夾。我不想切換到其他安裝程序產品,如Inno Setup,NSIS或WiX。
我已經創建了一個乾淨的新程序來測試它是否是我的設置或程序的問題。該程序是TestProgram.exe,它是一個Windows窗體應用程序,根本沒有添加任何代碼。安裝程序是Setup1.msi。卸載快捷方式導致應用程序文件夾中的Uninstall.bat文件。您可以安裝並使用此快捷方式卸載,而無需運行TestProgram.exe。儘管如此,卸載快捷方式仍留下2個空文件夾。 – Coder7862396 2010-05-31 05:09:07
Uninstall.bat在軟件包中是否正確?因此它是* IN USE *當卸載發生時,所以無法刪除文件夾 – saschabeaumont 2010-05-31 23:19:31
好的,這是有道理的。但是,如果我使用#2方法,並編輯MSI以添加msiexec.exe的快捷方式,那麼程序包或程序文件夾中沒有額外內容,並且在卸載過程中唯一使用的是msiexec.exe。即使使用這種方式也不能解決問題。 – Coder7862396 2010-06-01 00:19:44