Page 1 sur 2

[RESOLU] Probleme avec install_msi_if_needed et fichier msix

Posté : 09 nov. 2023 - 15:24
par t.heroult
Bonjour
Je souhaite développer un paquet pour le nouveau MS-TEAMS qui est fourni sous forme de msix.

Mais quand je tente un simple install_msi_if_needed('MSTeams-x86.msix') dans pyscripter, j'obtiens ce retour :

Code : Tout sélectionner

2023-11-09 15:13:13,714 CRITICAL Fatal error in install script: MSIError: open failed:
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 4083, in install_wapt
    exitstatus = setup.install()
  File "c:\waptdev\ln-msteams-x86_0.0.0_Windows_PROD\setup.py", line 16, in install
    install_msi_if_needed('MSTeams-x86.msix')
  File "C:\Program Files (x86)\wapt\common.py", line 4033, in new_func
    return func(*args, **kwargs)
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 1379, in install_msi_if_needed
    key = get_msi_properties(msi)['ProductCode']
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 2825, in get_msi_properties
    db = msilib.OpenDatabase(msi_filename, msilib.MSIDBOPEN_READONLY)
_msi.MSIError: open failed

FATAL ERROR : MSIError: open failed
Exit code:  3
Une idée de ce qui se passe ?

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 09 nov. 2023 - 17:50
par dcardon
Salut Thomas,

il me semble que le format msix n'a pas grand chose à voir avec le format msi. La librairie msilib que l'on utilise en sous-jacent dans la fonction install_msi_if_needed ne le gère pas visiblement.

Il faudra pour l'instant le lancer avec une comme run() je crois bien...

Denis

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 09:08
par t.heroult
Je comprends, mais ce qui n'est pas cohérent, c'est que depuis la console, j'ai lancé l'assistant de nouveau paquet, le premier choix proposant les msi, msix et exe et qu'après avoir sélectionné le msix, Pyscripter s'ouvre avec la ligne install_msi_if_needed déjà créée.
Il faudrait revoir ça si la fonction ne peut pas gérer les msix.

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 10:54
par t.heroult
Et du coup, je ne vois pas comment installer un MSIX avec WAPT.
Le plus simple normalement, serait d'utiliser Powershell avec Add-AppxPackage, sauf que cette opération n'est pas possible avec le compte LOCAL SYSTEM utilisé par WAPT...

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 11:01
par sfonteneau
Effectivement je viens de voir que msix est hardcoder dans waptconsole

Nous allons supprimer la référence c'est une erreur historique

en attendant vous pouvez essayer un truc de ce style :

Code : Tout sélectionner


def install():
    filecopyto('MyApp.msix','c:\MyApp.msix')

def session_setup():
    run(r'powershell Add-AppPackage -path "c:\MyApp.msix"')

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 11:42
par t.heroult
Bonjour Simon
Comme je le disais dans le commentaire précédent, ça ne fonctionne pas.
Du moins, ça marche dans Pyscripter puisqu'il est lancé avec mon compte, mais l'agent WAPT s'exécute avec le compte SYTEM LOCAL, lequel n'a pas le droit de lancer un "powershell Add-AppxPackage". C'est interdit par Windows et c'est pareil avec Add-AppPackage.

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 12:35
par sfonteneau
mais dans mon exemple c'est un session_setup donc pas system ça ne marche pas non plus ?

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 12:41
par t.heroult
Je ne sais pas ce que ça donnerait en session_setup...
Je vais tester ça et on va voir.

La suite tout à l'heure !

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 15:04
par t.heroult
Retour négatif, il ne se passe rien.
la commande utilisée est : powershell Add-AppPackage -Path "C:\Logiciels\bin\MSTeams-x64.msix"
Lancée par le session_setup : rien ne se passe
Lancée depuis une fenêtre powershell (simple utilisateur) : ça marche...

Code : Tout sélectionner


def session_setup():
    cmd = 'powershell Add-AppPackage -Path "C:\Logiciels\bin\MSTeams-x64.msix"'
    run(cmd)

Re: Probleme avec install_msi_if_needed et fichier msix

Posté : 10 nov. 2023 - 15:42
par sfonteneau
hum le r devant la chaine ?

ou directement utiliser le chemin complet :

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe