是否可以使用逻辑或,或否定InstallShield 2012 PRQ的条件?
-
12-12-2019 - |
题
我有一个prq,它安装 ms sql共享管理对象。如果此注册表项不存在
,我有一个安装prq的条件HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{08ECC740-2B3E-45D7-860C-59B511386286}
.
这工作正常,直到用户安装了不同的产品代码,这在我们安装SQL2008时所有时间都会发生在我们的Dev团队中。 PRQ启动的安装程序存在错误。
我需要一个更好的条件。我想做的就是: if(版本<= w.x.y.z ||没有找到版本) 然后安装prq
在 InstallShield先决条件编辑器中说
必须满足以下条件,以便运行的先决条件。 在这里,您可以定义先决条件的文件和注册表项 寻找要确定是否应该运行。如果没有 条件,先决条件将始终运行。
这与我的调查结果同意 - 条件是在一起的。是否有一些未发布的酱汁或或否定XML的条件? 我现在被烦恼,因为如果注册表中的版本是<我正在安装的版本,请运行prq。
<conditions>
<condition Type="32" Comparison="2"
Path="HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SharedManagementObjects\CurrentVersion"
FileName="Version" ReturnValue="10.1.2531.0">
</condition>
</conditions>
.
type=“32”是'注册表项具有指定的版本值' 比较=“2”是目标系统上的数据小于指定数据'
侧面问题:是否有一个类型和比较被列举的地方?
此比较类型与状态系统上的状态的比较小于指定数据或不存在'。就像现在一样,如果密钥存在于较低的版本工作中,但如果键不存在(即,未安装Smo),则未安装PRQ。
有没有办法制作这项工作? “具有某些版本存在的文件”条件确实有一个文件的版本小于上面指定的版本(或在目标系统上找不到文件)选项。但它不会有效检查SMO安装的文件 - 用户可能已将其安装到C:。
我希望我错过了一些东西。你会怎么办?
解决方案
我通常做的是不使用像ARP条目等抽象的东西来检测依赖关系。我去依赖自己。如果您需要DLL,那么请查看DLL是否存在DLL,而不是担心检测应该安装DLL的内容。
不隶属于 StackOverflow