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.