2013-05-06 54 views
2
<ExePackage Id="PackageID1" DisplayName="xxx" Compressed="yes" 
       SourceFile="..\xxx\MyExe.exe" Vital="yes" 
       InstallCommand="parameters to the exe" 
       UninstallCommand="parameters to the exe"/> 

當我觸發卸載動作:WiX的引導程序:卸載包鏈中

this.Engine.Detect(); 
this.Engine.Plan(LaunchAction.Uninstall); 
this.Engine.Apply(System.IntPtr.Zero); 

的exePackage不會被調用。但是,在安裝期間,它會使用正確的參數進入exe程序包。

我在這裏錯過了什麼嗎?

+0

在%TEMP%中創建的日誌文件可以幫助您。你能在這裏發表嗎? – 2013-05-06 12:41:46

回答

3

您需要ExePackage元素上的DetectCondition屬性。 DetectCondition是Burn引擎如何確定包裝是否安裝在機器上。如果沒有DetectCondition,引擎會認爲該包永遠不會被安裝,因此永遠不需要卸載。由於所有可執行文件都不同,您必須提供自己的DetectCondition。通常util名稱空間中的XxxSearch元素有助於檢測您的可執行文件是否已安裝。

注意:你可以看到在日誌文件中的「計劃」,它應該顯示被檢測的PackageID1封裝,即使它是安裝'Absent'

+0

是的......它現在正常工作:)謝謝。 – microsoftprogrammer 2013-05-07 05:54:40