我正在使用Wix 3.8。僅在安裝時自定義操作,但不在更新和不在卸載時
起初,我創建在安裝過程中執行自定義動作的安裝程序(.msi)(用於測試目的,只示出了一個消息):
產品元素:
<Product Id="PUT-GUID-HERE" Name="MyProduct"
Version="1.0.1.100" Manufacturer="Foobar Company"
UpgradeCode="PUT-GUID-HERE">
自定義操作
<CustomAction Id="Message1" Script="vbscript">
<![CDATA[
MsgBox("First Install?")
]]>
</CustomAction>
<InstallExecuteSequence>
<Custom Action="Message1"
Before="InstallInitialize">NOT Installed AND NOT REMOVE</Custom>
現在,當我執行我的.msi文件,T他的信息將被顯示在我的安裝:
在接下來,我修改我的產品代碼和增加我的版本號,以建立一個更新:
產品元素:
<Product Id="PUT-GUID-HERE"
Name="MyProduct" Version="1.0.2.100"
Manufacturer="Foobar Company"
UpgradeCode="PUT-GUID-HERE">
關於條件NOT Installed AND NOT REMOVE
我期望,當我拒絕更新時,消息框不會出現。但它確實:
是什麼,只有將上安裝,但不更新執行自定義操作正確的情況?
該條件可能不正確,因爲它不包括修復,並且請注意,儘管您可能聽說過,但不能保證您永遠不會得到修復。 IMO所需的條件只是一個普通的舊「未安裝」。然後它將永遠不會再運行。 – PhilDW 2014-09-06 18:34:37
@PhilDW:你對「未安裝」的建議是錯誤的。當我進行更新時,該動作將被執行→我已經測試過它。 – Simon 2014-09-08 08:35:00
「更新」是什麼意思?在修補程序,主要升級,修復和次要更新期間,始終設置「已安裝」屬性,因爲該ProductCode定義的產品仍然安裝。我以這種方式多次使用它,因此您的更新可能會有所不同。 – PhilDW 2014-09-09 19:45:12