wix - 如何检测net core 3.1 windows desktop app runtime是否安装

标签 wix

我正在尝试检测是否安装了 net core 3.1 Windows 桌面应用程序运行时,如果安装了则不运行安装程序。

然而,在安装了 net core 3.1 windows 桌面应用程序运行时的测试系统上,我可以看到安装程序正在运行,并且在查看日志后,NetCoreInstalled 的计算结果为 0,即使该目录存在。我怎样才能让它工作?

<Fragment>

    <util:FileSearch 
      Id="NetCoreInstalled" 
      Variable="NetCoreInstalled"
      Path="[ProgramFiles64Folder]dotnet\shared\Microsoft.WindowsDesktop.App\3.1.0"
      Result="exists" />
    
    <PackageGroup Id="NetCore310x64">


        <ExePackage
					Id="NetCore310x64"
					Cache="no"
					Compressed="yes"
					PerMachine="yes"
					InstallCondition="(VersionNT64) AND (NOT NetCoreInstalled)"
          DetectCondition="NetCoreInstalled"
          InstallCommand="/quiet /passive"
					Vital="yes"
					Permanent="yes"
					SourceFile="..\..\..\Requirements\windowsdesktop-runtime-3.1.0-win-x64.exe"
					Name="Redist\windowsdesktop-runtime-3.1.0-win-x64.exe" />

    </PackageGroup>


  </Fragment>

最佳答案

您需要DirectorySearch,而不是FileSearch

关于wix - 如何检测net core 3.1 windows desktop app runtime是否安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59365880/

相关文章:

Wix 3.5 - 更改/修复不要求提升

wix - 如何将参数传递给 WiX 的 Bundle.wxs 中的 ExecPackage

variables - WIX 属性从自定义操作转换为 WIX 变量

wix - 使用目录属性设置目录

WiX 未定义的预处理器变量

wix - 基于 CheckBox 值显示 WIX 对话框

wix - 如何为Wix Burn Bootstrapper exepackage添加从属文件夹

c++ - 在 Wix 中获取安装位置并写入注册表

iis - 将 .NET CLR 版本设置为无托管代码

wix - 产品 ID 和包裹 ID 之间的区别