我有一個WIX安裝程序。安裝程序無法關閉運行目標...解決方法?
當我在運行舊版本軟件的計算機上測試安裝程序時,出現以下提示。
問題是安裝程序無法管理關閉應用程序。當新程序運行時,它會抱怨舊程序正在運行。
有沒有辦法強制殺死應用程序? 如果沒有,WIX中是否有一些條目要求用戶在繼續安裝之前關閉應用程序?
我有一個WIX安裝程序。安裝程序無法關閉運行目標...解決方法?
當我在運行舊版本軟件的計算機上測試安裝程序時,出現以下提示。
問題是安裝程序無法管理關閉應用程序。當新程序運行時,它會抱怨舊程序正在運行。
有沒有辦法強制殺死應用程序? 如果沒有,WIX中是否有一些條目要求用戶在繼續安裝之前關閉應用程序?
我找到了答案在這裏:
WiX <util:CloseApplication> element not working
我做了一個好辦法,以在上述職位的解決方案。我在安裝序列的早期殺死了應用程序,所以上面的窗口沒有出現。
<!-- Code to force termination of running program...MSIExec couldn't do it -->
<Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM "$(var.ProductName).exe"'/>
<CustomAction Id="APP.TaskClose" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="ignore"/>
<InstallExecuteSequence>
<Custom Action="APP.TaskClose" After="LaunchConditions"/>
</InstallExecuteSequence>
如果你想知道什麼是「$(var.ProductName).EXE」是,我通過EXE名稱在命令行,因爲我創造了同一個程序的幾個品牌版本。只需替換你的exe名稱即可。
是的,在這個特殊的實例中這樣做是安全的。內存中沒有可能丟失的數據。
您應該使用維克斯UTIL擴展CloseApplication:
http://wixtoolset.org/documentation/manual/v3/xsd/util/closeapplication.html
這應該工作。
長期來看,您應該將應用程序與重新啓動管理器集成在一起,以便它自動關閉。