lancement de Windows application avec des paramètres

Investigation

certaines Windows les lanceurs d’applications dans le menu démarrer requièrent l’utilisation de paramètres pour être passés au fichier exécutable lors du lancement de l’application Windows. pour ce faire, nous devons d’abord identifier le lanceur nécessitant le paramètre avant d’intégrer l’application Windows à l’infrastructure de prise en charge du Package.

identification des exigences des paramètres de l’application Windows Lanceur

  1. installez votre application Windows sur un ordinateur de test.

  2. ouvrez le Menu démarrer de Windows.

  3. recherchez et sélectionnez votre application Windows Lanceur dans le Menu démarrer.

  4. si l’application est lancée, vous n’avez aucun problème (testez tous les lanceurs d’applications Windows associés dans le Menu démarrer).

  5. désinstallez l’application Windows de l’ordinateur de test.

  6. À l’aide du support d’installation Win32, installez l’application sur votre ordinateur de test.

  7. ouvrez le Menu démarrer de Windows.

  8. recherchez et cliquez avec le bouton droit sur votre application Windows dans le Menu démarrer.

  9. Sélectionnez plus >> ouvrir l’emplacement des fichiers dans le menu déroulant.

  10. Cliquez avec le bouton droit sur le premier raccourci de l’application associée (répétez les trois étapes suivantes pour tous les raccourcis de l’application associée).

  11. Dans le menu déroulant, sélectionnez Propriétés .

  12. Passez en revue la valeur dans la zone de texte à droite de cible. Après le chemin d’accès du fichier d’application, s’il existe un paramètre dans la liste, cet exemple d’application de la fenêtre de propriétés de fichier avec le paramètre dans la cible

  13. Enregistrez la valeur de paramètre pour une utilisation ultérieure.

Résolution

Windows les applications redirigeront des répertoires spécifiques liés à l’application vers le dossier du conteneur d’application Windows. si une application tente d’écrire dans le conteneur d’application Windows, une erreur se déclenche et l’écriture échoue.

pour résoudre le problème lié à l’échec de l’écriture de l’application Windows dans le conteneur d’application Windows, vous devez suivre les quatre étapes suivantes :

  1. déployer l’application Windows dans un répertoire local
  2. Créer le Config.jssur et injecter les fichiers de fibres discontinues requis
  3. mettre à jour le fichier AppxManifest de l’application Windows
  4. reconditionner et signer l’application Windows

les étapes ci-dessus fournissent des conseils pour extraire le contenu de l’application Windows dans un répertoire local intermédiaire, en injectant les fichiers de correction de fibres discontinues dans le répertoire d’application Windows intermédiaire, en configurant l’Application Lanceur pour pointer vers le lanceur de fibres discontinues de polyesters, puis en configurant les fibres discontinues config.jssur le fichier pour rediriger

Télécharger et installer les outils requis

Ce processus vous guide tout au long de la récupération et de l’utilisation des outils suivants :

  • NuGet Outil client
  • Framework de prise en charge de package
  • Windows 10 SDK (dernière version)
  • Analyseur de processus SysInternals

Les éléments suivants fournissent des instructions pas à pas sur le téléchargement et l’installation des outils requis.

  1. téléchargez la version la plus récente (sans version préliminaire) de l' outil client NuGet, puis enregistrez le nuget.exe dans le C:\PSF\nuget dossier.

  2. Téléchargez l’infrastructure de prise en charge du package à l’aide de NuGet en exécutant la commande suivante à partir d’une fenêtre PowerShell d’administration :

    Set-Location "C:\PSF"
    .\nuget\nuget.exe install Microsoft.PackageSupportFramework
    
  3. téléchargez et installez le kit de développement logiciel (SDK) Windows 10 Shared Computer Toolkit (SDK windows).

    1. Téléchargez le Kit de développement logiciel (SDK) Win 10.
    2. Exécutez le winsdksetup.exe qui a été téléchargé à l’étape précédente.
    3. Sélectionnez le bouton Suivant.
    4. Sélectionnez uniquement les trois fonctionnalités suivantes pour l’installation :
      • Windows Outils de signature SDK pour les applications de bureau
      • Windows Kit de développement logiciel (SDK) pour les applications C++ UWP
      • Microsoft SDK pour la localisation d’applications UWP
    5. Sélectionnez le bouton Installer.
    6. Sélectionnez le bouton OK .

étape de l’application Windows

en mettant l’application Windows en attente, nous allons extraire/décompresser le contenu de l’application Windows dans un répertoire local. une fois que l’application Windows a été décompressée dans l’emplacement intermédiaire, les fichiers de correction des fibres discontinues peuvent être injectés en corrigeant les expériences indésirables.

  1. Ouvrez une fenêtre PowerShell d’administration.

  2. définissez les variables suivantes ciblant votre fichier d’application spécifique et Windows 10 version du kit de développement logiciel (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$((gwmi Win32_Processor).AddressWidth)"    ## Operating System Architecture
    $Win10SDKVersion  = "10.0.19041.0"                               ## Latest version of the Win10 SDK
    
  3. décompressez l’application Windows dans le dossier intermédiaire en exécutant l’applet de commande PowerShell suivante :

    ## 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"
    

Créer et injecter les fichiers de fibres discontinues nécessaires

pour appliquer des actions correctives à l’application Windows, config.js le fichier doit être créé et fourni avec les informations relatives à la Lanceur de l’application Windows qui échoue. s’il existe plusieurs Windows lanceurs d’applications qui rencontrent des problèmes, le config.jsde fichier peut être mis à jour avec plusieurs entrées.

après la mise à jour de l'config.jssur le fichier, les fichiers de correction du config.jssur le fichier et de la prise en charge doivent être déplacés à la racine du package d’application Windows.

  1. ouvrez Visual Studio Code (VS Code) ou tout autre éditeur de texte.

  2. créez un nouveau fichier, en sélectionnant le menu fichier en haut de la VS Code, en sélectionnant nouveau fichier dans le menu déroulant.

  3. enregistrez le fichier en tant que config.jssur, en sélectionnant le menu fichier en haut de la fenêtre de VS Code, en sélectionnant enregistrer dans le menu déroulant. dans la fenêtre enregistrer sous, accédez au Windows répertoire intermédiaire de l’application (C:\PSF\Staging\PSFSampleApp) et définissez le nom de fichier sur config.json . Sélectionnez le bouton Enregistrer.

  4. Copiez le code suivant dans laconfig.jsnouvellement créée dans le fichier.

    {
        "applications": [
            {
                "id": "",
                "executable": "",
                "arguments": ""
            }
        ]
    }
    
  5. ouvrez le fichier AppxManifest de l’application intermédiaire Windows situé dans le Windows dossier intermédiaire de l’application (C:\PSF\Staging\PSFSampleApp\AppxManifest.xml) à l’aide de VS Code ou d’un autre éditeur de texte.

    <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. Définissez la applications.id valeur de l' config.jssur sur la valeur trouvée dans le champ applications.application.ID du fichier AppxManifest.xml . Image tournant l’emplacement de l’ID dans le fichier AppxManifest.

  7. Définissez la applications.executable valeur dans la config.jssur pour cibler le chemin d’accès relatif à l’application située dans Applications.Application.Exechamp cutable du fichier AppxManifest.xml . Image tournant l’emplacement de l’exécutable dans le fichier AppxManifest.

  8. Définissez la applications.arguments valeur de l' config.jssur pour qu’elle corresponde à l’argument utilisé pour lancer l’application. pour plus d’informations, consultez la section valeur enregistrée de l’étape finale de l' examen-identification de l’application Windows Lanceur le guide des exigences en matière de paramètres .

  9. Définissez la applications.workingdirectory valeur dans la config.jssur pour cibler le chemin de dossier relatif trouvé dans le champ Applications.Application.Executable du fichier AppxManifest.xml . Image tournant l’emplacement du répertoire de travail dans le fichier AppxManifest.

  10. Enregistrez leconfig.jsmis à jour dans le fichier.

    {
        "applications": [
            {
            "id": "PSFSample",
            "executable": "VFS/ProgramFilesX64/PS Sample App/PSFSample.exe",
            "arguments": "/bootfromsettingshortcut"
            }
        ]
    }
    
  11. copiez les quatre fichiers suivants à partir de l’infrastructure de prise en charge des packages, en fonction de l’architecture exécutable de l’application, à la racine de l’application de Windows intermédiaire. Les fichiers suivants se trouvent dans le .\Microsoft.PackageSupportFramework. \bin.

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

Mettre à jour AppxManifest

après la création et la mise à jour de l'config.jssur le fichier, le AppxManifest.xml de l’application Windows doit être mis à jour pour chaque Lanceur d’application Windows qui a été inclus dans le config.js. Les applications de AppxManifest doivent maintenant cibler les PSFLauncher.exe associées à l’architecture des applications.

  1. Ouvrez l’Explorateur de fichiers et accédez au dossier d’application MSIX intermédiaire (C:\PSF\Staging\PSFSampleApp).

  2. Cliquez avec le bouton droit sur AppxManifest.xml, puis sélectionnez Ouvrir avec du code dans le menu déroulant (si vous le souhaitez, vous pouvez ouvrir avec un autre éditeur de texte).

  3. Mettez à jour le fichier AppxManifest.xml avec les informations suivantes :

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

Recréer le package de l’application

toutes les corrections ont été appliquées, l’application Windows peut désormais être regroupée dans un MSIX et signée à l’aide d’un certificat de signature de code.

  1. Ouvrez une fenêtre PowerShell d’administration.

  2. Définissez les variables suivantes :

    $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$((gwmi Win32_Processor).AddressWidth)"    ## Operating System Architecture
    $Win10SDKVersion  = "10.0.19041.0"                               ## Latest version of the Win10 SDK
    
  3. recompresser l’application Windows à partir du dossier intermédiaire en exécutant l’applet de commande PowerShell suivante :

    Set-Location "${env:ProgramFiles(x86)}\Windows Kits\10\Bin\$Win10SDKVersion\$OSArchitecture"
    .\makeappx.exe pack /p "$AppPath" /d "$StagingFolder"
    
  4. signez l’application Windows en exécutant l’applet de commande PowerShell suivante :

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