属性值上的WiX自定义操作条件
我有一个依赖于博士后的课程。我制作的安装程序将为用户安装postgres;然而,我希望只有在尚未安装Postgres的情况下才会发生这种情况。我试图通过一个带有条件的自定义操作来实现这一点,但是,我似乎无法让它工作。任何帮助都将不胜感激。这就是我现在拥有的属性值上的WiX自定义操作条件,wix,installation,Wix,Installation,我有一个依赖于博士后的课程。我制作的安装程序将为用户安装postgres;然而,我希望只有在尚未安装Postgres的情况下才会发生这种情况。我试图通过一个带有条件的自定义操作来实现这一点,但是,我似乎无法让它工作。任何帮助都将不胜感激。这就是我现在拥有的 <Property Id="POSTGRESINSTALLED"> <RegistrySearch Id="POSTGRESINSTALLED_SEARCH" Key="SOFTWARE\PostgreSQL\Insta
<Property Id="POSTGRESINSTALLED">
<RegistrySearch Id="POSTGRESINSTALLED_SEARCH" Key="SOFTWARE\PostgreSQL\Installations\postgresql-x64-9.5" Root="HKLM" Type="raw" Name="Branding" />
</Property>
<InstallExecuteSequence>
<Custom Action='postgres_install_action' After='vc_redist_install_action'> ( NOT POSTGRESINSTALLED ) OR ( REINSTALL ) </Custom>
</InstallExecuteSequence>
(未安装)或(重新安装)
不清楚哪个部分不工作,是检测还是安装
如果运行安装并生成日志(msiexec/I[path to msi]/l*vx[path to text log]),您将看到是否设置了POSTGRESINSTALLED\u搜索。安装不需要完成,因为搜索很早。假设您的总体思路是正确的,那么您还没有明确说明是搜索32位注册表还是搜索64位注册表。它可能只是找错了地方
如果搜索有效,那么安装很容易失败。自定义操作看起来是即时的(默认),因此它不会在提升状态下运行,因此可能会失败。vc redist安装自定义操作也是如此
安装先决条件的模式是首先使用捆绑包安装它们。这些应该会有帮助,但你应该这样做:
我刚刚发现了问题。我在注册表搜索中丢失了
Win64=“yes”
。没有注意到没有设置拱门,默认设置为x86。我来看看包裹。