MSIX 打包工具:已安装的应用程序正在寻找 system32 中的图标,但未找到

问题描述

所以我完成了我的应用程序,使用 Inno Setup 制作了一个安装程序,该安装程序运行良好。

当我使用 MSIX Packaging Tool 制作 MSIX 包、安装它并运行应用程序时,我收到 this error 说它在 system32 中找不到图标。我尝试在我的应用程序代码添加一些行来帮助找到路径,但它不起作用。

    #original code
    current_path = os.path.dirname(os.path.abspath(__file__))
    icon_path = os.path.join(current_path,"icon.ico")
    
    #new code
    if(not os.path.exists(icon_path)):
        tpath = "c:\Program Files (x86)\App Name\icon.ico"
        if(os.path.exists(tpath)):
            icon_path = tpath
        else:
            tpath = "d:\Program Files (x86)\App Name\icon.ico"
            if(os.path.exists(tpath)):
                icon_path = tpath
            else:
                tpath = "e:\Program Files (x86)\App Name\icon.ico"
                if(os.path.exists(tpath)):
                    icon_path = tpath
                else:
                    tpath = "f:\Program Files (x86)\App Name\icon.ico"
                    if(os.path.exists(tpath)):
                        icon_path = tpath
                    else:
                        tpath = "c:\Program Files\WindowsApps\AppName_1.0.0.0_x64__s235487e6trvr\VFS\ProgramFilesX86\App Name\icon.ico"
                        if(os.path.exists(tpath)):
                            icon_path = tpath
                        else:
                            glo = glob.glob("c:\Program Files\WindowsApps\AppNa*")
                            for filename in glo:
                                tpath = os.path.join(filename,"VFS\ProgrameFilesX86\App Name\icon.ico")
                                if(os.path.exists(tpath)):
                                    icon_path = tpath
                                    break

我意识到部分或大部分代码是不必要的,但我只是想解决这个烦人的问题。

MSIX 在 c:\Program Files\WindowsApps\[some more folders] 中安装应用程序,我检查了应用程序文件夹,应用程序和图标都安装在那里。

解决方法

所以我相当确定 MSIX Packaging Tool 将工作目录设为 system32,并且大约有 2 种方法可以解决此问题:

  1. (更简单)使用 Advanced Installer Express 制作 MSIX 包或更改工作目录。
  2. (更难)使用 MSIX 包支持框架进行工作目录修复。