O <component>
elemento em um unattend.xml
arquivo - usado para fornecer informações necessárias para instalações totalmente automatizadas do Windows - geralmente é apresentado com vários atributos, por exemplo:
<component
name="Microsoft-Windows-International-Core-WinPE"
processorArchitecture="amd64"
publicKeyToken="31bf3856ad364e35"
language="neutral"
versionScope="nonSxS">
<!-- ... -->
</component>
Embora name
e processorArchitecture
sejam bastante autoexplicativos e language
sugiram que talvez introduza configurações específicas de localidade, não consegui encontrar nenhuma documentação sobre nenhum desses atributos.
Em particular, o que são versionScope
e publicKeyToken
? No momento, eles parecem ser "constantes mágicas".
Para responder a essa pergunta, primeiro precisamos de um pouco mais de informações sobre a origem desses atributos. O comentário de @Evan Anderson está correto: provavelmente nunca teremos acesso ao XSD oficial, no entanto, podemos inferir o significado com base em seu uso.
A primeira coisa a entender é que esse esquema não foi originalmente projetado para esses arquivos de resposta autônomos. A Microsof simplesmente reutilizou o esquema WMIConfig; você pode encontrá-lo em vários lugares, mas um dos mais predominantes é nos arquivos de "manifesto" usados junto com os pacotes de atualização do Windows. Veja aqui um exemplo.
Nesta utilização original, os valores dos atributos referiam-se ao pacote de atualização que os acompanhavam, o que nos permite dar-lhes um pouco mais de sentido. Por exemplo,
language
poderia assumir qualquer um dos valores listados aqui . Mas o que isso tem a ver com arquivos de resposta autônomos? Você estava perto da ideia de que existem configurações específicas de localidade. Lembre-se de que os arquivos autônomos não apenas transmitem "diretivas de configuração", mas também podem implantar pacotes - hotfixes, pacotes de idiomas, etc. Podemos ver isso no System Image Manager.Dando uma olhada em alguns desses pacotes, especificamente os pacotes de idiomas, podemos ver que o atributo language é realmente utilizado:
Uma vez que esses atributos se destinam principalmente a descrever pacotes que acompanham o arquivo autônomo, em vez de diretivas de configuração contidas nele, é fácil ver por que eles não fazem muito sentido em relação a essas diretivas e também por que parecem ser, como você diz, "constantes mágicas". A Microsoft simplesmente usou valores genéricos para esses atributos quando eles aparecem nas diretivas de configuração porque quaisquer outros valores não são realmente aplicáveis.
Portanto, para entender o significado de Language, VersionScope e PublicKey Token, precisamos analisá-los no contexto dos pacotes que eles descrevem. Obviamente
Language
descreve a aplicabilidade de um pacote específico de localidade.PublicKey Token
é definido pela Microsoft aqui como "os últimos 8 bytes do hash SHA-1 da chave pública sob a qual o assembly é assinado".Quanto a
VersionScope
, embora não haja uma definição concreta oferecida pela Microsoft, podemos assumir que isso tem a ver com o fato de o pacote em questão utilizar os assemblies Windows Component Store e Side by Side (SxS). Se você não é um programador, o que isso realmente implica pode ser um pouco confuso, mas confira o artigo da Wikipédia sobre o assunto.Espero que isso lance alguma luz sobre o assunto!