Pagina 1 di 2

[RISOLTO] Problema con install_msi_if_needed e file msix

Pubblicato: 9 novembre 2023 - 15:24
di t.heroult
Buongiorno
Voglio sviluppare un pacchetto per il nuovo MS-TEAMS fornito come msix.

Ma quando provo un semplice install_msi_if_needed('MSTeams-x86.msix') in pyscripter, ottengo questo output:

Codice: Seleziona tutto

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
Hai idea di cosa sta succedendo?

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 9 novembre 2023 - 17:50
di dcardon
Ciao Thomas,

mi sembra che il formato msix abbia ben poco a che fare con il formato msi. La libreria msilib, che viene utilizzata alla base della funzione install_msi_if_needed, a quanto pare non lo gestisce.

Per ora, credo che dovremo eseguirlo con qualcosa come run()...

Denis

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 09:08
di t.heroult
Capisco, ma ciò che è incoerente è che dalla console, ho avviato la procedura guidata per la creazione di nuovi pacchetti, la prima opzione che offre msi, msix ed exe, e dopo aver selezionato msix, PyScripter si apre con la riga `install_msi_if_needed` già creata.
Questo deve essere verificato se la funzione non è in grado di gestire i file msix.

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 10:54
di t.heroult
Quindi, non capisco come installare MSIX con WAPT.
Il modo più semplice sarebbe normalmente usare PowerShell con Add-AppxPackage, se non fosse che questa operazione non è possibile con l'account LOCAL SYSTEM utilizzato da WAPT...

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 11:01
di sfontenau
In effetti, ho appena visto che msix è codificato in modo rigido in waptconsole

Rimuoveremo il riferimento: è un errore storico

Nel frattempo, puoi provare qualcosa del genere:

Codice: Seleziona tutto


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

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

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 11:42
di t.heroult
Ciao Simon
, come ho già detto nel mio commento precedente, non funziona.
Almeno, funziona in PyScripter perché viene avviato con il mio account, ma l'agente WAPT viene eseguito con l'account SYSTEM LOCAL, che non ha l'autorizzazione per eseguire "PowerShell Add-AppxPackage". Questo è vietato da Windows, e lo stesso vale per Add-AppPackage stesso.

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 12:35
di sfontenau
Ma nel mio esempio è un session_setup, quindi non è un sistema, quindi non funziona neanche questo?

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 12:41
di t.heroult
Non so quale sarebbe il risultato in session_setup...
Lo testerò e vedrò.

A presto!

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 15:04
di t.heroult
Feedback negativo, non succede nulla.
Il comando utilizzato è: powershell Add-AppPackage -Path "C:\Software\bin\MSTeams-x64.msix"
Avviato da session_setup: non succede nulla
Avviato da una finestra di PowerShell (utente standard): funziona...

Codice: Seleziona tutto


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

Re: Problema con install_msi_if_needed e il file msix

Pubblicato: 10 novembre 2023 - 15:42
di sfontenau
Hmm, la 'r' prima della stringa?

O dovrei usare semplicemente il percorso completo:

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