退出时的 WIX 条件消息
WIX Conditional Message on Exit
我有一个 WIX 安装程序,我还需要安装 VC++ 2015 运行time 可执行文件。我使用的是 vcredist_x64.exe 而不是合并模块 (see this thread)。在我的 msi 使用自定义操作完成我的应用程序安装后,我可以成功启动 vcredist_x64.exe...但是,我想做的是首先检查 运行time 文件是否已经存在.如果他们这样做了,那么我将不 运行 宁 vcredist_x64.exe 就结束了。否则,我将 运行 自定义操作也安装 运行 次。
经过一些挖掘,但我发现 2015 运行 次有一个如下所示的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio.0\VC\Runtimes\x64
Installed 值为 1(如果存在)。
因此,在我的 .wxs 文件中,我进行了以下注册表搜索:
<!-- Visual C++ 2015 x64 -->
<Property Id="VCREDISTRUNTIMES2015INSTALLED">
<RegistrySearch Id="VCREDISTRUNTIMES2015SEARCH" Root="HKLM" Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio.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 安装程序,我还需要安装 VC++ 2015 运行time 可执行文件。我使用的是 vcredist_x64.exe 而不是合并模块 (see this thread)。在我的 msi 使用自定义操作完成我的应用程序安装后,我可以成功启动 vcredist_x64.exe...但是,我想做的是首先检查 运行time 文件是否已经存在.如果他们这样做了,那么我将不 运行 宁 vcredist_x64.exe 就结束了。否则,我将 运行 自定义操作也安装 运行 次。
经过一些挖掘,但我发现 2015 运行 次有一个如下所示的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio.0\VC\Runtimes\x64
Installed 值为 1(如果存在)。
因此,在我的 .wxs 文件中,我进行了以下注册表搜索:
<!-- Visual C++ 2015 x64 -->
<Property Id="VCREDISTRUNTIMES2015INSTALLED">
<RegistrySearch Id="VCREDISTRUNTIMES2015SEARCH" Root="HKLM" Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio.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),那么它将在退出对话框中显示消息。否则,将不会显示任何消息。希望对您有所帮助。