gpt4 book ai didi

windows - WIX 工具集 - 自定义操作命令无法正确检测 Windows 10 版本

转载 作者:可可西里 更新时间:2023-11-01 11:26:33 24 4
gpt4 key购买 nike

我有一个安装程序,它部署并运行一个单独的 .exe 文件以将驱动程序部署到系统。不幸的是,微软似乎已经放弃了对 Windows 10 及更高版本中 VersionNT 宏的支持,so I implemented an approach suggested in another post : 编写一个函数来查询 kernel32.dll 的版本号,并与标记值 (10.0.10240.16384) 进行比较。

关键在于:当我直接从管理控制台运行此命令时,该命令会正确检测到我正在运行的 Windows 版本。

Current Windows Version: 10.0.10240.16384 - Cutoff Version: 10.0.10240.16384

但是,当命令作为自定义操作从我的 WIX 工具集安装程序执行时,它似乎认为我使用的是旧版本的 Windows。我目前最好的猜测是安装程序或自定义操作命令以某种自动兼容模式运行。

Current Windows Version: 6.2.10240.16384 - Cutoff Version: 10.0.10240.16384

我该如何继续? VersionNT 的放弃令人沮丧,因为新版本 API(即:IsWindows10OrGreater())仅在 Win10 或更高版本上可用,因此在旧机器上我必须 dlopen/dlsym 并测试失败。我不知道为什么创建一个简单的 int return_OS_Version(major, minor, release, revision,) 函数这么难。

最佳答案

这有点骇人听闻(他们做这个,我们做那个……)但危急时刻需要危急时刻……

在 MSFT 玩的所有兼容性游戏中,它们似乎只掩盖了 Major 和 Minor,而不是 Build 和 revision。我还发现在 Win8 上他们将其屏蔽为 6.2,而在 Win 10 上他们将其屏蔽为 6.3。因此,我觉得这样做很舒服:

<Property Id="WIN10FOUND">
<DirectorySearch Id="searchSystem" Path="[SystemFolder]" Depth="0">
<FileSearch Id="searchFile" Name="advapi32.dll" MinVersion="6.3.10000.0"/>
</DirectorySearch>
</Property>

关于windows - WIX 工具集 - 自定义操作命令无法正确检测 Windows 10 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33817452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com