Средство упаковки MSIX: установленное приложение ищет значок в system32 и не найдено

Итак, я закончил свое приложение, сделал установщик с помощью Inno Setup, и этот установщик работает нормально.

Когда я создал пакет MSIX с помощью MSIX Packaging Tool, установил его и запустил приложение, я получил это ошибка о том, что не может найти значок в 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], и я проверил папку приложения, и приложение и значок установлены там.


person Noah    schedule 02.04.2021    source источник


Ответы (1)


Так что я вполне уверен, что MSIX Packaging Tool делает рабочий каталог system32, и есть примерно 2 способа исправить это:

  1. (Проще) Используйте Advanced Installer Express, чтобы создать пакет MSIX или изменить рабочий каталог.
  2. (Сложнее) Используйте платформу поддержки пакетов MSIX для исправления ошибок рабочего каталога.
person Noah    schedule 04.04.2021