Avvio di app di Windows con parametri

Analisi

Alcuni utilità di avvio delle app di Windows nel menu Start richiedono che l'uso dei parametri venga passato al file eseguibile all'avvio dell'app di Windows. A tale scopo, sarà prima necessario identificare l'utilità di avvio che richiede il parametro prima di integrare l'app di Windows con Package Support Framework.

Identificazione del requisito del parametro dell'utilità di avvio delle app di Windows

  1. Installare l'app di Windows in un computer di test.

  2. Aprire il menu Start di Windows.

  3. Individuare e selezionare l'icona di avvio delle app di Windows dal menu Start.

  4. Se l'app viene avviata, non si verificano problemi (testare tutti gli strumenti di avvio delle app di Windows associati nel menu Start).

  5. Disinstallare l'app di Windows dal computer di test.

  6. Usando il supporto di installazione Win32, installare l'applicazione nel computer di test.

  7. Aprire il menu Start di Windows.

  8. Individuare e fare clic con il pulsante destro del mouse sull'app di Windows dal menu Start.

  9. Selezionare Altro>>percorso file aperto dal menu a discesa.

  10. Fare clic con il pulsante destro del mouse sul primo collegamento dell'applicazione associato (ripetere i tre passaggi successivi per tutti i collegamenti all'applicazione associati).

  11. Selezionare Proprietà dal menu a discesa.

  12. Esaminare il valore nella casella di testo a destra di Destinazione. Dopo il percorso del file dell'applicazione, se è presente un parametro elencato, questa app Example of the File Property Window with Parameter in Target

  13. Registrare il valore del parametro per un uso futuro.

Risoluzione

Le app di Windows reindirizzeranno directory specifiche correlate all'applicazione alla C:\Program Files\WindowsApps cartella. Se un'applicazione tenta di scrivere nel contenitore di app di Windows, verrà generato un errore e la scrittura avrà esito negativo.

Per risolvere il problema relativo all'errore di scrittura dell'app di Windows nel contenitore di app di Windows, è necessario seguire i quattro passaggi seguenti:

  1. Preparare l'app di Windows in una directory locale
  2. Creare il file Config.json e inserire i file PSF necessari
  3. Aggiornare il file AppxManifest dell'app di Windows
  4. Ripacchetto e firmare l'app di Windows

I passaggi precedenti forniscono indicazioni tramite l'estrazione del contenuto dell'app di Windows in una directory a fasi locale, l'inserimento dei file di correzione PSF nella directory dell'app windows a fasi, la configurazione dell'utilità di avvio dell'applicazione in modo che punti all'utilità di avvio PSF, quindi la configurazione del file PSF config.json per reindirizzare l'utilità di avvio PSF all'app specificando la directory di lavoro.

Scaricare e installare gli strumenti necessari

Questo processo consente di eseguire il recupero e l'utilizzo degli strumenti seguenti:

  • Strumento client NuGet
  • PSF (Package Support Framework)
  • Windows 10 SDK (versione più recente)
  • SysInternals Process Monitor

Di seguito verranno fornite istruzioni dettagliate sul download e l'installazione degli strumenti necessari.

  1. Scaricare la versione più recente (non di anteprima) dello strumento client NuGet e salvare nuget.exe nella C:\PSF\nuget cartella .

  2. Scaricare Package Support Framework usando Nuget eseguendo il comando seguente da una finestra di PowerShell Amministrazione istrative:

    Set-Location "C:\PSF"
    .\nuget\nuget.exe install Microsoft.PackageSupportFramework
    
  3. Scaricare e installare Windows 10 Software Development Toolkit (Win 10 SDK).

    1. Scaricare Win 10 SDK.
    2. Eseguire winsdksetup.exe scaricato nel passaggio precedente.
    3. Seleziona il pulsante Avanti.
    4. Selezionare solo le tre funzionalità seguenti per l'installazione:
      • Strumenti di firma di Windows SDK per app desktop
      • App C++ di Windows SDK per UWP
      • Windwos SDK per la localizzazione di app UWP
    5. Selezionare il pulsante Installa.
    6. Selezionare il pulsante OK .

Preparare la fase dell'app di Windows

Eseguendo lo staging dell'app di Windows, verrà estratto/decompresso il contenuto dell'app di Windows in una directory locale. Dopo che l'app di Windows è stata decompressa nel percorso di gestione temporanea, i file di correzione PSF possono essere inseriti correggendo eventuali esperienze indesiderate.

  1. Aprire una finestra di PowerShell Amministrazione istrativa.

  2. Impostare le variabili seguenti destinate al file dell'app specifico e alla versione di Windows 10 SDK:

    $AppPath          = "C:\PSF\SourceApp\PSFSampleApp.msix"         ## Path to the MSIX App Installer
    $StagingFolder    = "C:\PSF\Staging\PSFSampleApp"                ## Path to where the MSIX App will be staged
    $OSArchitecture   = "x$((gcim Win32_Processor).AddressWidth)"    ## Operating System Architecture
    $Win10SDKVersion  = "10.0.19041.0"                               ## Latest version of the Win10 SDK
    
  3. Decomprimere l'app di Windows nella cartella di staging eseguendo il cmdlet di PowerShell seguente:

    ## Sets the directory to the Windows 10 SDK
    Set-Location "${env:ProgramFiles(x86)}\Windows Kits\10\Bin\$Win10SDKVersion\$OSArchitecture"
    
    ## Unpackages the Windows app to the staging folder
    .\makeappx.exe unpack /p "$AppPath" /d "$StagingFolder"
    

Creare e inserire i file PSF necessari

Per applicare azioni correttive all'app di Windows, è necessario creare un file config.json e fornire informazioni sull'utilità di avvio delle app di Windows con esito negativo. Se sono presenti più utilità di avvio delle app di Windows che riscontrano problemi, il file config.json può essere aggiornato con più voci.

Dopo aver aggiornato il file config.json , il file config.json e il supporto dei file di correzione PSF devono quindi essere spostati nella radice del pacchetto dell'app di Windows.

  1. Aprire Visual Studio Code (VS Code) o qualsiasi altro editor di testo.

  2. Creare un nuovo file selezionando il menu File nella parte superiore di VS Code, selezionando Nuovo file dal menu a discesa.

  3. Salvare il file come config.json, selezionando il menu File nella parte superiore della finestra di VS Code, selezionando Salva dal menu a discesa. Nella finestra Salva con nome passare alla directory di gestione temporanea dell'app di Windows (C:\PSF\Staging\PSFSampleApp) e impostare il nome file come config.json. Selezionare il pulsante Salva.

  4. Copiare il codice seguente nel file config.json appena creato.

    {
        "applications": [
            {
                "id": "",
                "executable": "",
                "arguments": ""
            }
        ]
    }
    
  5. Aprire il file app AppxManifest di Windows in gestione temporanea che si trova nella cartella di gestione temporanea dell'app di Windows (C:\PSF\Staging\PSFSampleApp\AppxManifest.xml) usando VS Code o un altro editor di testo.

    <Applications>
        <Application Id="PSFSAMPLE" Executable="VFS\ProgramFilesX64\PS Sample App\PSFSample.exe" EntryPoint="Windows.FullTrustApplication">
        <uap:VisualElements BackgroundColor="transparent" DisplayName="PSFSample" Square150x150Logo="Assets\StoreLogo.png" Square44x44Logo="Assets\StoreLogo.png" Description="PSFSample">
            <uap:DefaultTile Wide310x150Logo="Assets\StoreLogo.png" Square310x310Logo="Assets\StoreLogo.png" Square71x71Logo="Assets\StoreLogo.png" />
        </uap:VisualElements>
        </Application>
    </Applications>
    
  6. Impostare il applications.id valore in config.json sullo stesso valore trovato nel campo Applications.Application.ID del file AppxManifest.xml . Image circling the location of the ID within the AppxManifest file.

  7. Impostare il applications.executable valore in config.json per specificare come destinazione il percorso relativo dell'applicazione che si trova nel campo Applications.Application.Executable del file AppxManifest.xml . Image circling the location of the executable within the AppxManifest file.

  8. Impostare il applications.arguments valore in config.json in modo che corrisponda all'argomento usato per avviare l'applicazione. Vedere il valore registrato nel passaggio finale del documento Indagine - Identificazione dei requisiti dei parametri dell'utilità di avvio delle app di Windows.

  9. Impostare il applications.workingdirectory valore nel file config.json in modo che sia destinato al percorso di cartella relativo trovato nel campo Applications.Application.Executable del file AppxManifest.xml . Image circling the location of the working directory within the AppxManifest file.

  10. Salvare il file config.json aggiornato.

    {
        "applications": [
            {
            "id": "PSFSample",
            "executable": "VFS/ProgramFilesX64/PS Sample App/PSFSample.exe",
            "arguments": "/bootfromsettingshortcut"
            }
        ]
    }
    
  11. Copiare i quattro file seguenti da Package Support Framework in base all'architettura eseguibile dell'applicazione nella radice dell'app windows di gestione temporanea. I file seguenti si trovano all'interno di .\Microsoft.PackageSupportFramework.<Version>\bin.

    Applicazione (x64) Applicazione (x86)
    PSFLauncher64.exe PSFLauncher32.exe
    PSFRuntime64.dll PSFRuntime32.dll
    PSFRunDll64.exe PSFRunDll32.exe

Aggiornare AppxManifest

Dopo aver creato e aggiornato il file config.json , l'app di Windows AppxManifest.xml deve essere aggiornata per ogni utilità di avvio delle app di Windows inclusa in config.json. Le applicazioni di AppxManifest devono ora essere destinate a PSFLauncher.exe associato all'architettura delle applicazioni.

  1. Aprire Esplora file e passare alla cartella App MSIX a fasi (C:\PSF\Staging\PSFSampleApp).

  2. Fare clic con il pulsante destro del mouse su AppxManifest.xml e scegliere Apri con codice dal menu a discesa (facoltativamente, è possibile aprire con un altro editor di testo).

  3. Aggiornare il file AppxManifest.xml con le informazioni seguenti:

    <Package ...>
    ...
    <Applications>
        <Application Id="PSFSample"
                    Executable="PSFLauncher32.exe"
                    EntryPoint="Windows.FullTrustApplication">
        ...
        </Application>
    </Applications>
    </Package>
    

Ri-creare un pacchetto dell'applicazione

Tutte le correzioni sono state applicate, ora l'app di Windows può essere riconfezionata in un FILE MSIX e firmata usando un certificato di firma del codice.

  1. Aprire una finestra di PowerShell Amministrazione istrativa.

  2. Imposta le variabili seguenti:

    $AppPath          = "C:\PSF\SourceApp\PSFSampleApp_Updated.msix" ## Path to the MSIX App Installer
    $CodeSigningCert  = "C:\PSF\Cert\CodeSigningCertificate.pfx"     ## Path to your code signing certificate
    $CodeSigningPass  = "<Password>"                                 ## Password used by the code signing certificate
    $StagingFolder    = "C:\PSF\Staging\PSFSampleApp"                ## Path to where the MSIX App will be staged
    $OSArchitecture   = "x$((gcim Win32_Processor).AddressWidth)"    ## Operating System Architecture
    $Win10SDKVersion  = "10.0.19041.0"                               ## Latest version of the Win10 SDK
    
  3. Ricomprimere l'app di Windows dalla cartella di gestione temporanea eseguendo il cmdlet di PowerShell seguente:

    Set-Location "${env:ProgramFiles(x86)}\Windows Kits\10\Bin\$Win10SDKVersion\$OSArchitecture"
    .\makeappx.exe pack /p "$AppPath" /d "$StagingFolder"
    
  4. Firmare l'app di Windows eseguendo il cmdlet di PowerShell seguente:

    Set-Location "${env:ProgramFiles(x86)}\Windows Kits\10\Bin\$Win10SDKVersion\$OSArchitecture"
    .\signtool.exe sign /v /fd sha256 /f $CodeSigningCert /p $CodeSigningPass $AppPath