WIX 退出时的条件消息

标签 wix

我有一个 WIX 安装程序,我还需要安装 VC++ 2015 运行时可执行文件。我使用的是 vcredist_x64.exe,而不是合并模块 ( see this thread )。在我的 msi 使用自定义操作完成应用程序安装后,我可以成功启动 vcredist_x64.exe...但是,我想要做的是首先检查运行时文件是否已存在。如果他们这样做,那么我将直接完成而不运行 vcredist_x64.exe。否则,我还将运行自定义操作来安装运行时。

经过一番挖掘,我发现 2015 运行时有一个注册表项,如下所示:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64

已安装值为1(如果存在)。

因此,在我的 .wxs 文件中,我有以下注册表搜索:

<!-- Visual C++ 2015 x64 -->
<Property Id="VCREDISTRUNTIMES2015INSTALLED">
  <RegistrySearch Id="VCREDISTRUNTIMES2015SEARCH" Root="HKLM" Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" Name="Installed" Type="raw" />
</Property>

现在,我想做的是在退出对话框上显示一条消息,该消息表示如果未检测到运行时,那么它将启动一个安装程序以在退出时安装它们。像这样的事情:

<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Visual C++ Redistributable for Visual Studio 2015 is Required. Installation will proceed on exit.">
  <Condition>VCREDISTRUNTIMES2015INSTALLED</Condition>
</Property>

但是,这不起作用。我在条件标记上收到错误,并且项目无法构建。假设我的注册表搜索设置正确,有人可以告诉我如何在退出对话框中正确添加条件消息吗?谢谢!

最佳答案

回答我自己的问题...但是就这样了。事实证明,我的注册表搜索很好......但我需要使用“SetProperty”。所以,像这样:

<SetProperty Id="WIXUI_EXITDIALOGOPTIONALTEXT" After="AppSearch" Value="The Visual C++ Redistributable Package for Visual Studio 2015 is Required. Installation will now install run-time components that are required to run C++ applications built using Visual Studio 2015.">
  NOT VCREDISTRUNTIMES2015INSTALLED
</SetProperty>

现在,如果 VCREDISTRUNTIMES2015INSTALLED 为 null(或 false),那么它将在退出对话框上显示该消息。否则,将不会显示任何消息。希望有帮助。

关于WIX 退出时的条件消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856982/

相关文章:

installation - WiX 将引导 x86 和 x64 msi 刻录到单个无 UI Bootstrap 中

msbuild - 本地化使用防火墙扩展的 WiX 安装程序

wix - 如何在 SendTo 文件夹中为所有 WiX 用户创建快捷方式?

installation - 如何使用 WiX 安装程序注册文件类型/扩展名?

xml - WiX 可以引用名称中带有句点的项目吗?

WiX 次要升级删除 Windows 7 任务栏固定快捷方式

xslt - 使用 XSLT 1.0 根据引用的 XML 文件中的元素删除元素(WXS 组件/文件/等)

wix - 执行安装程序 (WixCloseApplications) 时出现错误 2762 - 使用 WiX 3.10.0.2103

wix - 烧录:访问 Bootstrapper.exe 中的 msi 文件

wix - "source is an admin image"是什么意思?