Az Electron alkalmazás csomagolása a disztribúcióhoz

Ez az útmutató bemutatja, hogyan hozhat létre MSIX-csomagot az Electron-alkalmazás Windows API-kkal való terjesztéséhez.

Előfeltételek

A csomagolás előtt győződjön meg arról, hogy:

Előkészítés a csomagolásra

Konfigurálja az Electron Forge-t, hogy kizárja az ideiglenes fájlokat a végleges buildből. Adjon hozzá egy ignore tömböt packagerConfig-ben a forge.config.js-hez.

module.exports = {
  packagerConfig: {
    asar: true,
    ignore: [
      /^\/\.winapp\/(?!bindings($|\/))/, // SDK files except generated JS bindings
      /^\/winapp\.yaml$/,       // SDK config
      /\.pfx$/,                 // Certificate files
      /\.pdb$/,                 // Debug symbols
      /\/obj($|\/)/,            // C# build artifacts
      /\/bin($|\/)/,            // C# build artifacts
      /\.msix$/                 // MSIX packages
    ]
  },
  // ... rest of your config
};

A létrehozott .winapp/bindings könyvtárnak a csomagolt alkalmazásban kell maradnia, mert a(z) #winapp/bindings az alkalmazás package.json#imports leképezésén keresztül erre a könyvtárra oldódik fel.

Fontos

Ellenőrizze, hogy megfelel-e a Package.appxmanifest csomagolt alkalmazásstruktúrának:

  • Az Executable attribútumnak a megfelelő .exe fájlra kell mutatnia a csomagolt kimenetben

Fejlesztési tanúsítvány létrehozása

Aláírt MSIX-csomag létrehozása előtt hozzon létre egy fejlesztési tanúsítványt:

npx winapp cert generate

Ezzel létrehoz egy devcert.pfx fájlt a projekt gyökerében, amely az MSIX-csomag aláírására szolgál.

Csomagolási beállítások

Két lehetősége van MSIX-csomag létrehozására az Electron-alkalmazáshoz:

  1. 1. lehetőség: A winapp parancssori felületének közvetlen használata – Konfigurálhatóbb, bármilyen csomagolóval használható
  2. 2. lehetőség: Az Electron Forge MSIX Maker használata – Jobban integrálva a Forge munkafolyamatba

Válassza ki a munkafolyamatnak leginkább megfelelő lehetőséget.


Ez a megközelítés nagyobb ellenőrzést biztosít a csomagolási folyamat felett, és bármilyen Elektron csomagolóval együttműködik.

Építsd meg az Electron-alkalmazásodat

Ahhoz, hogy az Electron-alkalmazást az MSIX formátummal csomagoljuk, először létre kell hoznunk a gyártási elrendezést. Az Electron Forge segítségével a csomagparancsot használhatjuk:

# Package with Electron Forge (or your preferred packager)
npx electron-forge package

Ezzel létrehozza az alkalmazás éles verzióját a ./out/ mappában. A mappa pontos neve az alkalmazás nevétől és architektúrájától függ (például my-windows-app-win32-x64).

Az MSIX-csomag létrehozása

Most a winapp parancssori felületével hozzon létre és írjon alá egy MSIX-csomagot a csomagolt alkalmazásból:

npx winapp pack .\out\<your-app-folder> --output .\out --cert .\devcert.pfx --manifest .\Package.appxmanifest

Cserélje le <your-app-folder> az Electron Forge által létrehozott tényleges mappanévre (például my-windows-app-win32-x64 x64 vagy my-windows-app-win32-arm64 ARM64 esetén).

A --manifest beállítás nem kötelező. Ha nincs megadva, egy Package.appxmanifestet fog keresni a csomagolt mappában vagy az aktuális könyvtárban.

A --cert beállítás nem kötelező. Ha nincs megadva, az MSIX nem lesz aláírva.

A --output beállítás nem kötelező. Ha nincs megadva, a rendszer az aktuális könyvtárat használja.

Az MSIX-csomag a következőképpen fog létrejönni ./out/<your-app-name>.msix: .

Jótanács

Ezeket a parancsokat a következő parancsokkal egészítheti ki a package.json szkriptekben a kényelem érdekében:

{
  "scripts": {
    "package-msix": "npm run build-csAddon && npx electron-forge package && npx winapp pack ./out/my-windows-app-win32-x64 --output ./out --cert ./devcert.pfx --manifest Package.appxmanifest"
  }
}

Csak frissítse az elérési utat, hogy megfeleljen a tényleges kimeneti mappa nevének.


2. lehetőség: Az Electron Forge MSIX Maker használata (forge felhasználók számára)

Ha már használja az Electron Forge-ot, a @electron-forge/maker-msix maker segítségével közvetlenül integrálhatja az MSIX-csomagolást a Forge munkafolyamatába.

Az MSIX Maker telepítése

npm install --save-dev @electron-forge/maker-msix

forge.config.js konfigurálása

Adja hozzá az MSIX készítőt ehhez: forge.config.js

module.exports = {
  // ... other config
  makers: [
    {
      name: '@electron-forge/maker-msix',
      config: {
        appManifest: '.\\Package.appxmanifest',
        windowsSignOptions: {
          certificateFile: '.\\devcert.pfx',
          // Development certificate default password — read this from an
          // environment variable once you sign with a real certificate.
          certificatePassword: process.env.WINDOWS_CERT_PASSWORD || 'password'
        }
      }
    }
  ],
  // ... rest of your config
};

Fontos

forge.config.js általában elkötelezett a forráskövetés mellett, ezért soha ne helyezzen bele valódi aláíró tanúsítványjelszót. A password fenti alapértelmezett érték csak azért van értelme, mert devcert.pfx egy eldobható fejlesztési tanúsítvány. Éles aláíráshoz tárolja a tanúsítványt és a hozzá tartozó jelszót a CI titoktárában – vagy használja az Megbízható Azure-aláírás szolgáltatást, amelyhez egyáltalán nem tartozik jelszó. Tekintse meg a biztonsági útmutatást.

Frissítse a Package.appxmanifest fájlt

Az Electron Forge MSIX készítője más mappaelrendezést használ, mint a winapp CLI-módszer. Az alkalmazást az app\ mappába helyezi az MSIX-ben. Ez a mappa automatikusan létrejön a csomagolás során – önnek nem kell saját maga létrehoznia. Frissítse a Executable elérési utat a Package.appxmanifest úgy, hogy az a app mappára mutasson.

<Applications>
  <Application Id="myApp"
    Executable="app\my-app.exe"
    EntryPoint="Windows.FullTrustApplication">
    <!-- ... rest of your application config -->
  </Application>
</Applications>

Cserélje le my-app.exe a tényleges végrehajtható névre. Ez a productName (vagy name) mezőn package.json alapul.

Megjegyzés:

A Forge MSIX maker Windows SDK-eszközöket keres a MinVersion a Package.appxmanifest alapján. Ha hibaüzenetet kap arról, hogy a WindowsKit nem található, győződjön meg arról, hogy a megadott MinVersion SDK-verzió telepítve van a számítógépen, vagy frissítsen MinVersion a telepített SDK-verziónak megfelelően.

Az MSIX-csomag létrehozása

Most már létrehozhatja az MSIX-csomagot. --targets A jelzővel csak az MSIX-készítőt futtathatja (ellenkező esetben a Forge az összes konfigurált készítőt futtatja):

npx electron-forge make --targets @electron-forge/maker-msix

Az MSIX-csomag a ./out/make/msix/<arch>/ mappában jön létre (pl. ./out/make/msix/arm64/ vagy ./out/make/msix/x64/).

Jótanács

Ez a megközelítés jobban integrálva van az Electron Forge munkafolyamatával, és egy lépésben automatikusan kezeli a csomagolást és az MSIX-létrehozást.

Az MSIX telepítése és tesztelése

Először telepítse a fejlesztési tanúsítványt (egyszeri beállítás):

# Run as Administrator:
npx winapp cert install .\devcert.pfx

Most telepítse az MSIX-csomagot. Kattintson duplán az msix fájlra, vagy futtassa a következő parancsot:

# Option 1 output:
Add-AppxPackage .\out\<your-app-name>.msix

# Option 2 output:
Add-AppxPackage .\out\make\msix\<arch>\<your-app-name>.msix

Cserélje le a <your-app-name> és <arch> elemeket a build kimenetének tényleges értékeivel.

Az alkalmazás megjelenik a Start menüben! Indítsa el, és tesztelje Windows API-funkcióit.

Terjesztési beállítások

Ha már rendelkezik egy működő MSIX-csomagpal, számos lehetősége van az alkalmazás terjesztésére:

Közvetlen letöltés

Az MSIX-csomagot a webhelyén tárolhatja közvetlen letöltés céljából. Győződjön meg arról, hogy egy megbízható hitelesítésszolgáltatótól származó kódaláíró tanúsítvánnyal írja alá, így a felhasználók biztonsági figyelmeztetések nélkül telepíthetik.

Microsoft áruház

Küldje el az alkalmazást a Microsoft Store a legszélesebb körű terjesztéshez és az automatikus frissítésekhez. A következőket kell tennie:

  1. Microsoft Partnerközpont-fiók létrehozása
  2. Az alkalmazás nevének lefoglalása
  3. Frissítse Package.appxmanifest a saját Store-identitásával. Nincs szükség az msix aláírására, az áruház közzétételi folyamata automatikusan aláírja.
  4. Küldés minősítésre

További információ: Az alkalmazás közzététele a Microsoft Store

Vállalati disztribúció

Közvetlenül a nagyvállalati ügyfeleknek az alábbiakon keresztül terjeszthető:

  • Céges portál – Az Intune-t használó szervezetek számára
  • Közvetlen letöltés – Az MSIX üzemeltetése a webhelyen
  • Sideloading – Telepítés a PowerShell vagy az App Installer használatával

További információ: Alkalmazások terjesztése az Áruházon kívül

Alkalmazástelepítő

Hozzon létre egy .appinstaller fájlt az automatikus frissítésekhez:

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    Uri="https://your-domain.com/packages/myapp.appinstaller"
    Version="1.0.0.0"
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
    <MainPackage
        Name="YourAppName"
        Version="1.0.0.0"
        Publisher="CN=YourPublisher"
        Uri="https://your-domain.com/packages/myapp.msix"
        ProcessorArchitecture="x64" />
    <UpdateSettings>
        <OnLaunch HoursBetweenUpdateChecks="24" />
    </UpdateSettings>
</AppInstaller>

További információ: App Installer-fájl áttekintése

Következő lépések

Gratulálok! Sikeresen csomagolta a Windows-kompatibilis Electron-alkalmazást a disztribúcióhoz! 🎉

További források

Vissza az áttekintéshez

Segítségkérés

Jó terjesztést! 🚀