<component>
文件中的元素(unattend.xml
用于提供全自动 Windows 安装所需的信息)通常具有许多属性,例如:
<component
name="Microsoft-Windows-International-Core-WinPE"
processorArchitecture="amd64"
publicKeyToken="31bf3856ad364e35"
language="neutral"
versionScope="nonSxS">
<!-- ... -->
</component>
虽然name
和processorArchitecture
是不言自明的,并且language
表明或许它引入了特定于语言环境的设置,我无法找到有关任何这些属性的文档。
具体来说,versionScope
和是什么publicKeyToken
?目前它们似乎是“神奇常数”。
答案1
要回答这个问题,我们首先需要更多有关这些属性来自何处的信息。@Evan Anderson 的评论是正确的:我们可能永远无法访问官方 XSD,但我们可以根据它们的用法推断出含义。
首先要理解的是,此架构最初并不是为这些无人值守的应答文件设计的。微软只是重复使用了 WMIConfig 架构;您可以在许多地方找到它,但最主要的地方之一是与 Windows 更新包一起使用的“清单”文件中。请参阅这里举个例子。
在最初的使用中,属性的值指的是它们附带的更新包,这让我们能够更好地理解它们。例如,language
可以采用列出的任何值这里。但这与无人值守应答文件有什么关系?您很接近于存在特定于语言环境的设置的想法。请记住,无人值守文件不仅可以传达“配置指令”,还可以部署软件包 - 修补程序、语言包等。我们可以在系统映像管理器中看到这一点。
看一下这些包,特别是语言包,我们可以看到语言属性确实被使用了:
由于这些属性主要用于描述无人值守文件附带的包,而不是其中包含的配置指令,因此很容易理解为什么它们与这些指令没有多大关系,以及为什么它们看起来像您所说的“神奇常数”。当这些属性出现在配置指令中时,Microsoft 只是使用通用值,因为任何其他值都不适用。
因此,要深入了解语言、版本范围和公钥令牌的含义,我们需要在它们描述的包的上下文中查看它们。显然Language
描述了特定于地区的包的适用性。PublicKey Token
由 Microsoft 定义这里作为“对该程序集进行签名的公钥的 SHA-1 哈希的最后 8 个字节”。
至于VersionScope
,虽然微软没有提供具体的定义,但我们可以假设这与相关软件包是否使用 Windows 组件存储和并排 (SxS) 程序集有关。如果你不是程序员,这实际上意味着什么可能会有点令人困惑,但请查看维基百科关于该主题的文章。
希望这可以为该主题提供一些启示!