桌面应用程序转换器移动注册表项



形势

无论出于何种原因,安装程序都会在HKLM/SOFTWARE/WOW6432Node/foo下放置注册表项
  • .appx包显示为ProcessorArchitecture="x64"
  • 问题

    • HKLM/SOFTWARE/WOW6432Node/foo下找不到这些注册表项。取而代之的是HKLM/SOFTWARE/foo

    动机

    当您的软件包显示为x64时,为什么要在HKLM/SOFTWARE/WOW6432Node/foo下显示注册表项?因为主要可执行文件实际上是x86,所以您只需要将其显示为x64,因为存在一个或多个作为x64 的辅助.exe

    现在,很明显,I可以KEY_WOW64_64KEY标志用于所有注册表操作。然而,这感觉像是一个可怕的黑客。我真正想要的是一种方法,使注册表项保持在它们所在的位置。如果32位安装程序在不使用KEY_WOW64_64KEY的情况下创建注册表项,那么同一个32位应用程序应该能够在没有KEY_WOW64_64KEY的情况下读取该项。

    附加说明

    如果您只使用一个更改来重新打包相同的.appx,以将其用于x86(如果不再次运行转换器,这只是appx打包程序),那么注册表项将显示在正确的位置。但它不会通过windows商店的验证。

    这是最新的版本。目标图像版本为10.0.15063.0

    您是否尝试过使用命令行参数"-PackageArch x64"进行转换?这应该会为您提供一个x64包,其中包含WOW6432Node/*密钥。

    最新更新