在继续安装之前,我需要检查服务可执行版本。
我已经从注册表中读取了注册服务的完整路径:
<Property Id="SOME_SERVICE_PATH">
<RegistrySearch Id="FindServicePath" Type="raw" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TARGET_SERVICE" Name="ImagePath" />
</Property>
之后,我尝试执行如下文件搜索:
<Property Id="TARGET_SERVICE_UNSUPPORTED">
<DirectorySearch Id="ServiceParticularVersionSearch" Path="[SOME_SERVICE_PATH]">
<FileSearch Name="Service.exe" MaxVersion="2.5.0.1" />
</DirectorySearch>
</Property>
这并没有给我带来结果。
我想问题出在我传递给DirectorySearch Path
属性的值上。根据 Wix 文档Path
,应使用“用户系统上的路径。绝对或相对于包含目录的路径”进行初始化。不幸的是,注册表中没有我可以读取服务安装目录的位置。这是 3d 派对组件。
这里有什么解决方案吗?重要时刻 - 禁止在我们的项目中使用自定义操作