Solution

Lever je eigen builds uit als ondertekende MSIX.

Je bouwt de software al. Er een ondertekende, gevalideerde MSIX van maken hoort een stap in je pipeline te zijn, geen apart project. De forge_msix-CLI van EtherApps Forge is een directe vervanger van makeappx.exe van Microsoft, dus een buildmap wordt een ondertekend, gevalideerd en getest package zonder Windows-SDK op de build-agent en zonder het script te herschrijven dat je al hebt.

Geen SDK

de CLI roept de Windows-packaging-engine rechtstreeks aan op de build-agent

Licentievrij

de makeappx-compatibele commando's hebben helemaal geen licentie nodig

Eén stap

aanmaken, ondertekenen, valideren en testen binnen de release-pipeline

MSIX packaging for developers and ISVs solution overview screenshot.

Past in de pipeline

Wat een release-pipeline nodig heeft, en waar het standaardgereedschap ophoudt

Een build als MSIX packagen is niet één taak. Het is manifest, package, ondertekening, validatie, test en een updatepad. Vergeleken per fase in plaats van per product:

PipelinefaseStandaard Windows-SDK-gereedschapforge_msix
Inrichten van de build-agentWindows-SDK geïnstalleerd en op versie vastgezet op elke agentEen kopie van de CLI-map in PATH. Die roept de engine aan die met Windows meekomt
ManifestHandmatig geschreven en handmatig in de pas gehouden met de buildGegenereerd uit de versiebronnen van de executable, of in versiebeheer gehouden en meegegeven
Packagen en ondertekenenLosse tools, ondertekening achteraf erop geplaktEén commando, met de publisher-identiteit uitgelijnd op het certificaatsubject
De build laten falenExitcodes scheiden een ongeldig package niet van een mislukte runValidatie geeft een eigen code voor geanalyseerd-maar-ongeldig, dus de poort is eenduidig
Sideload-updatesApp installer-manifest met de hand geschreven en onderhoudenGegenereerd uit de echte identiteit van het ondertekende package, bundle-bewust

The problem

Waarom MSIX een handmatige stap blijft voor teams die hun eigen software bouwen.

Ontwikkelteams en softwareleveranciers zitten niet met hetzelfde probleem als een migratieteam. Hier is geen installer kwijt en valt niets vast te leggen: de build werkt al. De wrijving zit in alles wat daarna komt. MSIX-packaging betekende historisch een Windows-SDK-afhankelijkheid op de build-agent, een ondertekeningsstap die er achteraf op werd geplakt, certificaatbeheer waarvan niemand eigenaar is, en geen betrouwbare manier om een build te laten falen als het package niet deugt. Het gevolg is dat packagen een handmatige klus wordt die iemand op releasedag doet, en dat is precies waar fouten bij klanten terechtkomen.

De build-agent heeft gereedschap nodig dat hij niet nodig zou moeten hebben

Packagen met het standaardgereedschap betekent de Windows-SDK installeren en op versie vastzetten op elke agent. Dat is een zware afhankelijkheid voor één stap, en hij loopt tussen agents uiteen op een manier die pas op een releasedag opvalt.

Ondertekening wordt als bijzaak behandeld

Windows installeert geen niet-ondertekende MSIX, dus ondertekenen is niet optioneel. Het er na het packagen op plakken betekent meestal een certificaatbestand op schijf met het wachtwoord in een builddefinitie, of een handmatige stap door degene die het certificaat heeft.

Een slecht package faalt stilletjes

Zonder validatiepoort die een ongeldig package onderscheidt van een mislukte run kan een kapot package de pipeline passeren en bij een klant belanden, waar het faalt bij installatie in plaats van bij de build.

De inner loop is te traag om op te itereren

Bij elke rebuild een volledig package bouwen is tijdens ontwikkeling onnodig en traag, dus teams testen de gepackagede vorm pas laat, en containerspecifiek gedrag overvalt ze aan het eind.

What changes

Wat er verandert voor een ontwikkelteam

Directe vervanger van makeappx

De packaging-commando's nemen dezelfde schakelaars als makeappx.exe, dus een bestaand script blijft werken als de binary wordt vervangen. Die commando's zijn licentievrij, dus invoering begint niet met een inkoopgesprek, en de engine is de besturingssysteemcomponent in plaats van een herimplementatie.

Manifest, package en handtekening in één stap

Genereer een manifest uit de versiebronnen en architectuur van de gebouwde executable, of houd er een in versiebeheer zodat identiteit, publisher en capabilities net als elk ander bestand worden gereviewd. Maak en onderteken daarna in één commando, vanuit een certificate store op thumbprint zodat er geen wachtwoord in een builddefinitie belandt, met een RFC 3161-tijdstempel zodat handtekeningen het certificaat overleven.

Een buildpoort die je kunt vertrouwen

Schemavalidatie draait als preflight, en het validatiecommando geeft een eigen exitcode voor een package dat is geanalyseerd en ongeldig bevonden, los van een run die simpelweg mislukte. Op een release candidate installeert een smoke test het ondertekende package, start en sluit het, deïnstalleert het en schrijft een JSON-rapport, en een assessmentronde scoort het tegen best practices voor packaging.

Een snellere inner loop en een updatefeed

Registreer tijdens ontwikkeling de buildoutput als los package in plaats van bij elke rebuild opnieuw te packagen, en valideer, start en ruim daarna in één pass op tegen een geïsoleerde stagingkopie. Genereer voor sideload-distributie een app installer-manifest uit de echte identiteit van het ondertekende package, zodat geïnstalleerde kopieën zichzelf bijwerken vanaf een HTTPS-locatie.

How we deliver it

Product-mapping

Deze route wordt geleid door EtherApps Forge, en specifiek door de forge_msix-CLI. Forge is een Win32-applicatie die je in je eigen omgeving uitrolt in plaats van een gehoste dienst, dus buildartefacten, certificaten en packaging blijven onder jouw controle en binnen je pipeline. Heeft dezelfde organisatie ook ingekochte software met verdwenen installers, dan dekt de capture-first route op de pagina MSIX-packaging en deployment die helft van het landschap via hetzelfde signing- en leverpad.

EtherApps Forge captures installed Windows applications from running systems, analyses the real application footprint, supports AI-guided packaging decisions, and produces deployment-ready outputs for modern environments.

Where this fits

  • Een ISV die een Windows-desktopproduct uitlevert dat klanten als ondertekende MSIX willen ontvangen in plaats van als klassieke installer.
  • Een ontwikkelteam dat al een MSI of setup.exe publiceert en een modern, netjes deïnstalleerbaar formaat nodig heeft voor zakelijke klanten.
  • makeappx.exe vervangen in een CI-script dat werkt, zonder de pipeline te herschrijven en zonder iets te licentiëren.
  • Zakelijke klanten die vóór aankoop om via Intune uitrolbare packages vragen, waar packaging een commerciële blokkade is geworden.
  • Sideload-distributie buiten een store, waar klanten een updatefeed nodig hebben in plaats van een handmatige herinstallatie.
  • Interne bedrijfsapplicatie-ontwikkeling, waar hetzelfde team de software schrijft en op het eigen landschap uitrolt.

FAQ

Wat ontwikkel- en releaseteams als eerste vragen.

Licenties, afhankelijkheden van de build-agent, ondertekening, en waarin dit verschilt van de capture-first route voor legacy-applicaties.

Is dit hetzelfde als jullie legacy-applicatiecapture?

Nee, en het onderscheid doet ertoe. Capture-first packaging bestaat voor applicaties waarvan de installer kwijt is, zodat de draaiende applicatie de bron van waarheid wordt. Deze route gaat uit van het omgekeerde: je hebt een gezonde buildmap en wilt die als pipelinestap gepackaged, ondertekend en gevalideerd hebben. Beide delen aan het eind hetzelfde signing-, validatie- en Intune-leverpad, en daarom kunnen landschappen met ingekochte én zelfgebouwde software één route voor beide gebruiken.

Hebben we een licentie nodig om het in onze pipeline te gebruiken?

Niet voor de makeappx-compatibele commando's. Packagen, uitpakken, bundelen, ontbundelen, valideren en resources indexeren zijn licentievrij, dus forge_msix werkt als echte directe vervanger van makeappx.exe zonder dat er iets gekocht hoeft te worden. De toegevoegde-waarde-workflows, dus aanmaken vanuit een manifest, ondertekenen, testen, assessment, certificaatbeheer en de ontwikkelaarsregistratiecommando's, vereisen een actieve EtherApps Forge-licentie.

Moet de build-agent de Windows-SDK geïnstalleerd hebben?

Nee. De CLI roept de Windows-packaging-API rechtstreeks aan, en die engine is een besturingssysteemcomponent in plaats van een SDK-afhankelijkheid, dus packages krijgen dezelfde schemacontrole, block map en structuur die makeappx oplevert. De agent heeft Windows 10 versie 1709 of nieuwer, of Windows 11, op x64 nodig. Uitrollen is een map die je kopieert en aan PATH toevoegt, zonder installer.

Hoe pakken we code signing in CI aan?

Onderteken vanuit een certificate store op thumbprint of subject in plaats van vanuit een PFX op schijf, zodat er geen wachtwoord in een builddefinitie wordt geschreven. Voeg een RFC 3161-tijdstempelserver toe zodat handtekeningen geldig blijven nadat het certificaat verloopt. Zet de publisher in je manifest exact gelijk aan het certificaatsubject en laat de publisher-modus op strict, zodat een afwijking de build stopt in plaats van stilletjes de identiteit te wijzigen die je klanten al geïnstalleerd hebben.

Hoe laten we de build falen als het package niet deugt?

Draai het validatiecommando met JSON-uitvoer en vertak op de exitcode. Het onderscheidt een geanalyseerd maar ongeldig package van een operationele fout, en dat is het verschil tussen een kapot package en een kapotte agent. Houd de schakelaars die een build voorbij validatie- of semantische fouten laten lopen buiten release-pipelines; het zijn diagnosemiddelen om uit te zoeken waarom een package niet bouwt, geen instellingen om aan te laten staan.

Kunnen we onze eigen build packagen als die containerfixes nodig heeft?

Ja. Applicaties die vóór MSIX zijn geschreven gaan vaak uit van gedrag dat de container niet toestaat, zoals wegschrijven naast de eigen executable of een vast installatiepad verwachten. Forge zet het Package Support Framework klaar zodat die gevallen worden gecorrigeerd met bestands- en registry-omleiding en correcties van de werkmap, zonder wijziging van je broncode. Voor eigen software wil je het gedrag misschien liever bij de bron oplossen, maar het framework zorgt dat een release ondertussen niet geblokkeerd raakt.

Hoe zit het met updates voor klanten die sideloaden in plaats van een store te gebruiken?

Genereer een app installer-manifest uit het ondertekende package; het leidt de identiteit af uit het package zelf en is bundle-bewust. Publiceer het package en dat manifest op een HTTPS-locatie, dan kunnen geïnstalleerde kopieën zichzelf van daaruit bijwerken. Dat geeft sideload- en zakelijke klanten een updatepad zonder storevermelding of handmatige herinstallatie.

Kunnen we een al uitgeleverd package repareren zonder het opnieuw te bouwen?

Ja. Een package kan worden uitgepakt naar een werkmap, chirurgisch bewerkt, gevalideerd en opnieuw gepackaged: manifestwaarden, capabilities, payloadbestanden en de virtuele registry van het package zijn allemaal aanpasbaar, en elke manifestbewerking wordt gevalideerd voordat die wordt weggeschreven, zodat een misvormde wijziging wordt geweigerd in plaats van opgeslagen. Opnieuw packagen verandert de contenthash, dus het package moet daarna opnieuw worden ondertekend.

Start here

Maak van een ondertekende MSIX een artefact van de build, niet een klus die iemand op releasedag doet.

Begin met de gratis proefperiode van 7 dagen van EtherApps Forge en package één echte build van begin tot eind, of praat met ons over de pipeline die je al draait en waar de packagingstap daarin hoort.

  • De packaging-commando's spiegelen makeappx één op één en hebben geen licentie nodig, dus een werkend CI-script kan Forge invoeren door een binary te vervangen in plaats van een pipeline te herschrijven.
  • Packagen, ondertekenen, valideren en een smoke test zijn fasen van hetzelfde gereedschap, dus een ondertekende MSIX rolt uit de release-build naast elk ander artefact in plaats van op releasedag met de hand in elkaar te worden gezet.
  • Validatie geeft een eigen exitcode voor een ongeldig package, dus de buildpoort onderschept een slecht package eerder dan een klant dat doet.
  • Forge is een Win32-applicatie die in je eigen omgeving draait, dus buildartefacten en ondertekeningscertificaten verlaten je pipeline nooit.