我從我們的wxs文件中得到以下代碼片段。我需要了解爲什麼我們需要CustomAction SetInstallType
?通過CustomAction設置屬性
我認爲INSTALLATIONTYPE
屬性將從Registrykey中設置。因爲它是一個公共屬性,我想我也可以在運行msiexec
時從命令行傳遞它。 我從commandLine發送的值會覆蓋從註冊表獲得的值嗎?
<Property Id="INSTALLATIONTYPE"> <RegistrySearch Id='InstallType' Root='HKLM' Key='SOFTWARE\MyProduct\PR\ROOT' Name='Configuration' Type='raw'/> </Property> <CustomAction Id="SetInstallType" Property="INSTALLATIONTYPE" Value="[INSTALLATIONTYPE.DEFAULT]"/> <InstallExecuteSequence> ...... <Custom Action="SetInstallType" After="AppSearch">INSTALLATIONTYPE.DEFAULT </Custom> ..... </InstallExecuteSequence>
我試圖從命令行傳遞的INSTALLATIONTYPE
值喜歡INSTALLATIONTYPE=FULL
但它被視爲一個新的屬性,而不是改變現有屬性的值。
單獨'RegistrySearch'是否足以搜索註冊表值並將其分配給屬性?如果我只有'RegistrySearch'是否提供了我在命令行提供的值覆蓋它的值? – 2015-02-10 04:54:21
'RegistrySearch'是一個抽象,不存在。它將行寫入Appearch和Reglocator表中,然後由AppSearch操作進行處理。您在命令行傳遞的屬性是初始值,然後被AppSearch覆蓋。記錄安裝程序(msiexec/I foo.msi/l * v install.log),您將看到顯示此情況的部分。 – 2015-02-10 11:58:26
好的。當我進行管理安裝時,我會在日誌中看到這些嗎? – 2015-02-10 13:22:36