问题描述
所以我完成了我的应用程序,使用 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 种方法可以解决此问题:
- (更简单)使用 Advanced Installer Express 制作 MSIX 包或更改工作目录。
- (更难)使用 MSIX 包支持框架进行工作目录修复。