我发现,当我更新引导程序的清单以支持Windows 10可兼容性时,MSI的InstallUISequence将正确地设置VersionNT=1000,而InstallExecuteSequence将设置VersionNT=603。
如何使InstallExecuteSequence也设置VersionNT=1000?
发布于 2015-08-13 14:25:49
这是我的两分钱。
我不认为VersionNT属性非常有用。VersionNT64是: VersionNT64。而不是VersionNT64来确定比特。
这是个小问题(他们这么做,我们也这么做.)但是绝望的时候需要绝望的措施..。
在所有的兼容性游戏,MSFT正在玩,他们似乎只是掩蔽的主要和次要,但建设和修订。我还计算出,在Win8上,他们把它伪装成6.2,而在赢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 (FOO)?然后查找一些注册表条目或DLL,这些条目或DLL指示存在特定的特性、组件、API,并将其用于我的测试。
微软已经采用了一种常绿的方法,“你不需要知道它是什么版本,你将永远拥有最新的,它将永远被称为Windows 10”,对我来说,这强化了我更喜欢采用的方法。我知道总有一天他们是错的,我确实需要知道,否则我会安装,我的应用程序会失败,我的用户会抱怨,而不知道他们有什么版本。(叹息.)
发布于 2017-03-12 02:31:16
发布于 2015-08-11 12:16:16
由于msiexec.exe
的清单中没有Windows10的兼容性,而且VersionNT
是一个私有财产,所以我不知道如何使执行序列看到VersionNT=1000
。我建议以下几种方法之一:
VersionNT
复制到另一个属性(有些公共财产类似于REALVERSIONNT
,请确保像其他要传递给执行序列的属性一样在SecureCustomProperties
中列出它),(我对注册表项选项感到困惑,因为如果操作系统在将来升级,它可能会过时。还请注意,所有这些选项都很可能仅与Windows的理论未来版本中引导程序上的清单一样正确。)
https://stackoverflow.com/questions/31932646
复制相似问题