Electron Uygulamanızı Dağıtım için Paketleme

Bu kılavuzda, Electron uygulamanızı Windows API'leriyle dağıtmak için bir MSIX paketinin nasıl oluşturulacağı gösterilmektedir.

Önkoşullar

Paketlemeden önce şunları yaptığınızdan emin olun:

Paketlemeye Hazırlanma

Geçici dosyaları son derlemenin dışında tutmak için Electron Forge'ı yapılandırın. ignore dizisine packagerConfig arrayini forge.config.js ekleyin.

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
};

Oluşturulan .winapp/bindings dizini, #winapp/bindings uygulamanın package.json#imports haritası aracılığıyla ona çözümlendiği için paketlenen uygulamada kalmalıdır.

Important

Paketlenmiş uygulama yapınıza Package.appxmanifest uygun olduğunu doğrulayın.

  • Paketlenmiş çıkışınızdaki Executable özniteliği, doğru .exe dosyasına işaret etmelidir.

Geliştirme Sertifikası Oluşturma

İmzalı bir MSIX paketi oluşturmadan önce bir geliştirme sertifikası oluşturun:

npx winapp cert generate

Bu, proje kökünüzde MSIX paketini imzalamak için kullanılacak bir devcert.pfx dosya oluşturur.

Paketleme Seçenekleri

Electron uygulamanız için MSIX paketi oluşturmak için iki seçeneğiniz vardır:

  1. Seçenek 1: Winapp CLI'yi doğrudan kullanma - Daha fazla yapılandırılabilir, herhangi bir paketleyiciyle çalışır
  2. Seçenek 2: Electron Forge MSIX Maker kullanma - Forge iş akışına daha entegre

İş akışınıza en uygun seçeneği belirleyin.


Bu yaklaşım size paketleme işlemi üzerinde daha fazla denetim sağlar ve herhangi bir Elektron paketleyici ile çalışır.

Electron Uygulamanızı Oluşturma

Electron uygulamanızı MSIX ile paketlemek için önce üretim düzenini oluşturmamız gerekir. Electron Forge ile paket komutunu kullanabiliriz:

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

Bu işlem, klasörde uygulamanızın ./out/ üretim sürümünü oluşturur. Tam klasör adı, uygulama adınız ve mimarinize (örn. my-windows-app-win32-x64) bağlıdır.

MSIX Paketini Oluşturma

Şimdi paketlenmiş uygulamanızdan bir MSIX paketi oluşturmak ve imzalamak için winapp CLI'yi kullanın:

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

değerini Electron Forge tarafından oluşturulan gerçek klasör adıyla değiştirin <your-app-folder> (örneğin, my-windows-app-win32-x64 x64 veya my-windows-app-win32-arm64 ARM64 için).

seçeneği --manifest isteğe bağlıdır. Sağlanmadıysa paketlenen klasörde veya geçerli dizinde Package.appxmanifest araması yapacaktır.

Bu --cert seçenek ayrıca isteğe bağlıdır. Sağlanmazsa, msix imzalanmaz.

Bu --output seçenek ayrıca isteğe bağlıdır. Sağlanmazsa geçerli dizin kullanılır.

MSIX paketi olarak ./out/<your-app-name>.msixoluşturulur.

Tavsiye

Kolaylık sağlamak için betiklerinize package.json şu komutları ekleyebilirsiniz:

{
  "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"
  }
}

Yolu çıkış klasörünüzün gerçek adıyla eşleşecek şekilde güncellediğinizden emin olun.


Seçenek 2: Electron Forge MSIX Maker kullanma (Forge kullanıcıları için)

Zaten Electron Forge kullanıyorsanız, oluşturucuyu kullanarak MSIX paketlemesini doğrudan Forge iş akışına tümleştirebilirsiniz.

MSIX Maker'ı yükleme

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

forge.config.js dosyasını yapılandırın

MSIX oluşturucuyu forge.config.js üzerine ekleyin.

module.exports = {
  // ... other config
  makers: [
    {
      name: '@electron-forge/maker-msix',
      config: {
        appManifest: '.\\Package.appxmanifest',
        windowsSignOptions: {
          certificateFile: '.\\devcert.pfx',
          certificatePassword: 'password'
        }
      }
    }
  ],
  // ... rest of your config
};

Package.appxmanifest dosyasını güncelle

Electron Forge MSIX oluşturucu, winapp CLI yaklaşımından farklı bir klasör düzeni kullanır. Uygulamanızı MSIX'teki bir app\ klasörün içine yerleştirir. Bu klasör paketleme sırasında otomatik olarak oluşturulur; kendiniz oluşturmanız gerekmez. Güncelleştirin Executable yolunu Package.appxmanifest'de app klasörüne işaret edecek şekilde.

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

my-app.exe ile, gerçek yürütülebilir dosya adınızı değiştirin. Bu, productName içindeki name (veya package.json) alanına dayanır.

Note

Forge MSIX oluşturucu, MinVersionPackage.appxmanifest temel alan Windows SDK araçlarını arar. WindowsKit'in bulunamadığını gösteren bir hata alırsanız, içinde belirtilen MinVersion SDK sürümünün makinenizde yüklü olduğundan emin olun veya yüklü bir SDK sürümüyle eşleşecek şekilde güncelleştirin MinVersion .

MSIX Paketini Oluşturma

Artık MSIX paketini oluşturabilirsiniz. Bayrağını --targets kullanarak yalnızca MSIX oluşturucusunu çalıştırın (aksi takdirde Forge tüm yapılandırılmış oluşturucuları çalıştırır):

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

MSIX paketi ./out/make/msix/<arch>/ klasöründe (örneğin, ./out/make/msix/arm64/ veya ./out/make/msix/x64/) oluşturulacaktır.

Tavsiye

Bu yaklaşım Electron Forge iş akışıyla daha tümleşiktir ve paketleme ve MSIX oluşturma işlemlerini tek adımda otomatik olarak gerçekleştirir.

MSIX'i Yükleme ve Test Edin

İlk olarak geliştirme sertifikasını yükleyin (tek seferlik kurulum):

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

Şimdi MSIX paketini yükleyin. msix dosyasına çift tıklayın veya aşağıdaki komutu çalıştırın:

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

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

<your-app-name> ve <arch> değerlerini derleme çıkışınızdaki gerçek değerlerle değiştirin.

Uygulamanız Başlat Menüsünde görünür! Başlatın ve Windows API özelliklerinizi test edin.

Dağıtım Seçenekleri

Çalışan bir MSIX paketiniz olduğunda, uygulamanızı dağıtmak için çeşitli seçenekleriniz vardır:

Doğrudan İndirme

MsIX paketini doğrudan indirmek için web sitenizde barındırın. Kullanıcıların güvenlik uyarısı olmadan yükleyebilmesi için güvenilir bir sertifika yetkilisinden (CA) bir kod imzalama sertifikasıyla imzaladığınızdan emin olun.

Microsoft Store

En geniş dağıtım ve otomatik güncelleştirmeler için uygulamanızı Microsoft Store gönderin. Yapmanız gerekenler:

  1. Microsoft İş Ortağı Merkezi hesabı oluşturma
  2. Uygulamanızın adını ayırın
  3. Package.appxmanifest öğesini mağaza kimliğinizle güncelleyin. msix'i imzalamanız gerekmez; mağaza yayımlama işlemi otomatik olarak imzalar.
  4. Sertifikasyon için gönder

Daha fazla bilgi edinin: Uygulamanızı Microsoft Store

Kurumsal Dağıtım

Aşağıdakiler aracılığıyla doğrudan kurumsal müşterilere dağıtabilirsiniz:

  • Şirket Portalı - Intune kullanan kuruluşlar için
  • Doğrudan İndirme - MSIX'i web sitenizde barındırın
  • Dışarıdan Yükleme - PowerShell veya Uygulama Yükleyicisi aracılığıyla yükleme

Daha fazla bilgi edinin: Uygulamaları Mağaza dışında dağıtma

Uygulama Yükleyicisi

Otomatik güncelleştirmeler için bir .appinstaller dosya oluşturun:

<?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>

Daha fazla bilgi edinin: Uygulama Yükleyicisi dosyasına genel bakış

Sonraki Adımlar

Tebrikler! Windows etkin Electron uygulamanızı dağıtım için başarıyla paketlediniz! 🎉

Ek Kaynaklar

Genel Bakışa Dön

Yardım Alın

Dağıtımınız kutlu olsun! 🚀