Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation MSI InstallFinalize ARP删除条件_Installation_Wix_Windows Installer_Upgrade - Fatal编程技术网

Installation MSI InstallFinalize ARP删除条件

Installation MSI InstallFinalize ARP删除条件,installation,wix,windows-installer,upgrade,Installation,Wix,Windows Installer,Upgrade,我正在尝试配置WiX来构建安装程序,这样我就可以通过命令行提供的属性激活功能,并将它们迁移到下一次升级 当尝试使用我的WiX安装程序进行主要升级时,升级不会从ARP Menü中删除以前的版本。在重新安装之前,所有其他功能/组件似乎都已删除(日志中列出了它们)。只有在上一版本中通过命令行提供的属性激活功能时,才会出现此问题 v1的ARP条目被删除: msiexec /L*v install.log /i installerv1.msi msiexec /L*v install.log /i ins

我正在尝试配置WiX来构建安装程序,这样我就可以通过命令行提供的属性激活功能,并将它们迁移到下一次升级

当尝试使用我的WiX安装程序进行主要升级时,升级不会从ARP Menü中删除以前的版本。在重新安装之前,所有其他功能/组件似乎都已删除(日志中列出了它们)。只有在上一版本中通过命令行提供的属性激活功能时,才会出现此问题

v1的ARP条目被删除:

msiexec /L*v install.log /i installerv1.msi
msiexec /L*v install.log /i installerv2.msi
v1的ARP条目未被删除:

msiexec /L*v install.log /i installerv1.msi EXTRAFEATURE=true
msiexec /L*v install.log /i installerv2.msi EXTRAFEATURE=true
或者

msiexec /L*v install.log /i installerv1.msi EXTRAFEATURE=true
msiexec /L*v install.log /i installerv2.msi
(v1和v2的产品代码、PackageCode和产品版本不同,升级代码保持不变)

简化的WiX配置:


外部特征
...
查看日志,我只看到一个区别:InstallInitialize步骤不会触发脚本的生成以删除ARP条目

工作示例:

MSI(14:10)[10:24:20:422]:执行操作:安装初始化
Aktion 10:24:20:安装初始化。
妊娠期10:24:20:00。
MSI(14:10)[10:24:20:423]:计算机策略值“AlwaysInstallHighted”为0
MSI(14:10)[10:24:20:423]:用户策略值“AlwaysInstallHighted”为0
阿基翁10:24:20:GenerateScript。Für folgende Aktion werden Skriptvorgänge generiert:
GenerateScript:InstallInitialize
MSI(14:10)[10:24:20:429]:属性更改:删除ProductToBerRegistered属性。其当前值为“1”。
MSI(14:10)[10:24:20:430]:注:1:22052:3:类别
MSI(14:10)[10:24:20:430]:注意:1:22282:3:Class 4:从'Class'中选择'CLSID',其中'Icon'=?和'Class`.'Attributes`=1
MSI(14:10)[10:24:20:430]:注:1:22052:3:类别
注释:1:22282:3:第4类:选择'Component','Component','CLSID','Class',其中'Component'='Component'和'Icon'=?和(`Component`.`Installed`0和`Component`.`Action`0)
MSI(14:10)[10:24:20:430]:注:1:22052:3:分机
注意:1:22282:3:扩展4:选择'Component','Component'中的'Extension','Extension','ProgId',其中'Component'。'Component`='Extension`.'Component`和'ProgId`.'ProgId`='Extension`.'ProgId`.'ProgId`.'Icon`=?和(`Component`.`Installed`0和`Component`.`Action`0)
MSI(14:10)[10:24:20:430]:“ProductIcon.ico”图标将被删除。
Aktion beendet um 10:24:20:InstallInitialize。吕加贝维特1号。
不起作用示例:

MSI(74:94)[09:50:04:656]:执行操作:安装初始化
Aktion 09:50:04:安装初始化。
Aktion gestartet um 09:50:04:安装初始化。
MSI(74:94)[09:50:04:658]:计算机策略值“AlwaysInstallHighted”为0
MSI(74:94)[09:50:04:658]:用户策略值“AlwaysInstallHighted”为0
Aktion beendet um 09:50:04:安装初始化。吕加贝维特1号。
在InstallFinalize()的文档中,我找到了以下描述:

如果检测到产品被标记为完全删除,则会自动将操作添加到脚本中,以删除产品控制面板信息中的添加/删除程序,取消注册和取消发布产品,并从%WINDOWS%中删除缓存的本地数据库(如果存在)


我找不到任何关于ARP条目被删除时的情况的文档。为什么添加该功能会阻止触发ARP删除?

该功能已禁用,因此不会被删除


该功能已禁用,因此不会删除


也许您可以略读这些关于功能和功能条件的答案:
1)
2)
3)
4)
。感谢您的参考。我考虑了ADDLOCAL,但我选择了FeatureConditions,因为ADDLOCAL没有按预期工作:我无法使用ADDLOCAL安装ExtraFeature。可能是
Level=0
,或者组件只设置了一个注册表项,但是如果我尝试使用
msiexec/QN/I installerv1.MSI ADDLOCAL=“ProductFeature,ExtraFeature”
安装MSI,则只安装ProductFeature。应该由ADDLOCAL属性覆盖。我还删除了功能条件和属性,但没有生效。该级别一直是我的问题:
level=“0”
似乎适合功能条件,但使用ADDLOCAL激活功能似乎需要级别>0。也许您可以浏览以下功能和功能条件的答案:
1)
2)
3)
4)
。感谢您的参考。我考虑了ADDLOCAL,但我选择了FeatureConditions,因为ADDLOCAL没有按预期工作:我无法使用ADDLOCAL安装ExtraFeature。可能是
Level=0
,或者组件只设置了一个注册表项,但是如果我尝试使用
msiexec/QN/I installerv1.MSI ADDLOCAL=“ProductFeature,ExtraFeature”
安装MSI,则只安装ProductFeature。应该由ADDLOCAL属性覆盖。我还删除了功能条件和属性,但没有生效。级别一直是我的问题:
level=“0”
似乎适合功能条件,但使用ADDLOCAL激活功能似乎需要级别>0。