多语言支持
尽管 WSK(Windows System Kit)中的 FactoryOS 程序包提供了三种显示语言支持(en-US、zh-CN、zh-TW),但由于发布时未经充分测试,无法使用内置工具自动完成语言相关设置。
例如,在使用 PrepWSKWorkSpace 脚本创建 OEMInput.xml 时,如果指定添加语言或设置默认语言的参数,会出现错误提示:不支持修改非 ModernPC SKU 的语言。
此问题可以通过修改内置工具和脚本解决,但更为便捷的方法是直接手动修改 OEMInput.xml 的 <Languages> 元素,例如添加 <Language>zh-CN</Language> 或 <Language>zh-TW</Language>。设置默认语言只需添加属性 Default=”true” 即可。
如果通过复制原始 en-us 部分来添加其他语言,需要注意默认语言(标记了 Default=”true” 的语言)只能有一个,否则会在制作时抛出异常。可以删除多余的 Default 属性或将其设为 false 来解决。
如果直接修改原始 en-us 部分来改变语言,制作时 ImageApp.exe 将会警告:必须包含 en-US 语言,并且会自动增加该语言。理论上,这一要求可以通过修改内置工具绕过。
示例:
<?xml version="1.0" encoding="utf-8"?>
<OEMInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2019/06/ImageUpdate">
……
<Languages>
<Language Default="true">zh-CN</Language>
<Language>en-us</Language>
</Languages>
……
</OEMInput>
常见错误
如果当前系统版本高于 WSK 版本,可能出现以下异常:
无法挂载/卸载 UpdateOS
可能出现拒绝访问(0x80070005)错误,这可能是由 wimgapi.dll 和 wimserv.exe 中的 bug 导致的。可以删除对应文件,以使用当前系统内置的版本。
无法检测存储池版本
这是由于内置的 IUSpaces.dll 版本(相对于当前系统版本)过低,无法识别系统最高支持的存储池版本,可以从最新版本的 ADK 中获取 IUSpaces.dll 并替换来解决。
注:直接修改 WSK 的 iso 本身较为复杂,可以复制文件到其他可写位置再修改。
ARM 和 ARM64 体系结构版本的制作
与AMD64不同,官方未提供通用设备包,需要自行创建设备布局相关包。
容器支持
尚未进行测试。已知 ARM 体系结构不提供容器支持。
完整系统的 RamBoot 支持
尚未进行测试。不同于从 UpdateOS.wim 启动。