Solution

Leverera dina egna builds som signerad MSIX.

Ni bygger redan programvaran. Att göra den till en signerad, validerad MSIX borde vara ett steg i er pipeline, inte ett eget projekt. forge_msix-CLI:t från EtherApps Forge är en direkt ersättare för Microsofts makeappx.exe, så en build-mapp blir ett signerat, validerat och testat paket utan Windows-SDK på byggagenten och utan att skriva om skriptet ni redan har.

Utan SDK

CLI:t anropar Windows paketeringsmotor direkt på byggagenten

Licensfritt

de makeappx-kompatibla kommandona kräver ingen licens alls

Ett steg

skapa, signera, validera och testa inuti release-pipelinen

MSIX packaging for developers and ISVs solution overview screenshot.

Passar pipelinen

Vad en release-pipeline behöver, och var standardverktyget tar slut

Att paketera en build som MSIX är inte en uppgift. Det är manifest, paket, signering, validering, test och en uppdateringsväg. Jämfört per steg i stället för per produkt:

PipelinestegStandardverktyg i Windows SDKforge_msix
Uppsättning av byggagentenWindows SDK installerat och versionslåst på varje agentEn kopia av CLI-mappen i PATH. Den anropar motorn som följer med Windows
ManifestHandskrivet och handhållet i takt med byggetGenererat från den byggda filens versionsresurser, eller versionshanterat i repot och skickat in
Paketera och signeraSeparata verktyg, signering påklistrad efter paketeringenEtt kommando, med utgivaridentiteten anpassad till certifikatets subjekt
Låta bygget faleraExitkoder skiljer inte ett ogiltigt paket från en misslyckad körningValideringen ger en egen kod för analyserat-men-ogiltigt, så grinden är entydig
Sidoladdade uppdateringarApp installer-manifest skrivet och underhållet för handGenererat från det signerade paketets verkliga identitet, bundle-medvetet

The problem

Varför MSIX förblir ett manuellt steg för team som bygger sin egen programvara.

Utvecklingsteam och programvaruleverantörer sitter inte fast i samma problem som ett migrationsteam. Här finns inget förlorat installationsprogram och inget att fånga: bygget fungerar redan. Friktionen ligger i allt som kommer efteråt. MSIX-paketering har historiskt inneburit ett Windows SDK-beroende på byggagenten, ett signeringssteg påklistrat i efterhand, certifikathantering som ingen äger, och inget tillförlitligt sätt att låta ett bygge falera när paketet är fel. Resultatet är att paketering blir ett manuellt jobb någon gör vid release, vilket är precis där misstagen når kunderna.

Byggagenten behöver verktyg den inte borde behöva

Att paketera med standardverktyget innebär att installera och versionslåsa Windows SDK på varje agent. Det är ett tungt beroende för ett enda steg, och det glider isär mellan agenter på ett sätt som bara syns på en releasedag.

Signering behandlas som en eftertanke

Windows installerar inte en osignerad MSIX, så signering är inte valfritt. Att klistra på den efter paketeringen brukar betyda en certifikatfil på disk med lösenordet i en byggdefinition, eller ett manuellt steg utfört av den som har certifikatet.

Ett dåligt paket falerar tyst

Utan en valideringsgrind som skiljer ett ogiltigt paket från en misslyckad körning kan ett trasigt paket passera pipelinen och nå en kund, där det falerar vid installation i stället för vid bygget.

Den inre loopen är för långsam att iterera i

Att bygga ett fullt paket vid varje ombyggnad under utveckling är onödigt och långsamt, så team slutar testa den paketerade formen tills sent, och containerspecifikt beteende överraskar dem på slutet.

What changes

Vad som förändras för ett utvecklingsteam

Direkt ersättare för makeappx

Paketeringskommandona tar samma flaggor som makeappx.exe, så ett befintligt skript fortsätter fungera när binären byts. De kommandona är licensfria, så införandet börjar inte med ett inköpssamtal, och motorn är operativsystemets komponent i stället för en omimplementering.

Manifest, paket och signatur i ett steg

Generera ett manifest från den byggda filens versionsresurser och arkitektur, eller håll ett i versionshanteringen så att identitet, utgivare och capabilities granskas som vilken fil som helst. Skapa och signera sedan med ett kommando, från ett certifikatlager via tumavtryck så att inget lösenord skrivs in i en byggdefinition, med en RFC 3161-tidsstämpel så att signaturer överlever certifikatet.

En byggrind du kan lita på

Schemavalidering körs som förhandskontroll, och valideringskommandot ger en egen exitkod för ett paket som analyserats och befunnits ogiltigt, skilt från en körning som helt enkelt misslyckades. På en release candidate installerar ett röktest det signerade paketet, startar och stänger det, avinstallerar det och skriver en JSON-rapport, och en bedömningsomgång poängsätter det mot god paketeringspraxis.

En snabbare inre loop och ett uppdateringsflöde

Registrera under utveckling byggresultatet som ett löst paket i stället för att paketera om vid varje ombyggnad, och validera, starta och städa sedan i en enda omgång mot en isolerad stagingkopia. För sidoladdad distribution genererar du ett app installer-manifest från det signerade paketets verkliga identitet, så att installerade kopior uppdaterar sig själva från en HTTPS-plats.

How we deliver it

Produktmappning

Den här rutten leds av EtherApps Forge, närmare bestämt av dess forge_msix-CLI. Forge är en Win32-applikation som du driftsätter inuti din egen miljö i stället för en värdbaserad tjänst, så byggartefakter, certifikat och paketering stannar under din kontroll och inuti din pipeline. Har samma organisation också inköpt programvara med förlorade installationsprogram täcker capture-first-rutten på sidan MSIX-paketering och deployment den halvan av miljön via samma signerings- och leveransväg.

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

  • En ISV som levererar en Windows-skrivbordsprodukt som kunder vill ha som signerad MSIX i stället för ett klassiskt installationsprogram.
  • Ett utvecklingsteam som redan publicerar en MSI eller setup.exe och behöver ett modernt, rent avinstallerbart format för företagskunder.
  • Att ersätta makeappx.exe i ett CI-skript som fungerar, utan att skriva om pipelinen eller licensiera något.
  • Företagskunder som kräver Intune-distribuerbara paket innan de köper, där paketering blivit ett kommersiellt hinder.
  • Sidoladdad distribution utanför en butik, där kunder behöver ett uppdateringsflöde i stället för en manuell ominstallation.
  • Intern verksamhetsutveckling, där samma team skriver programvaran och rullar ut den i den egna miljön.

FAQ

Frågor utvecklings- och releaseteam ställer först.

Licensiering, beroenden på byggagenten, signering, och hur det här skiljer sig från capture-first-rutten som byggts för legacy-applikationer.

Är det här samma sak som er fångst av legacy-applikationer?

Nej, och skillnaden spelar roll. Capture-first-paketering finns för applikationer vars installationsprogram är borta, så att den körande applikationen blir sanningskällan. Den här rutten förutsätter motsatsen: ni har en fungerande build-mapp och vill få den paketerad, signerad och validerad som ett pipelinesteg. Båda delar samma signerings-, validerings- och Intune-leveransväg på slutet, vilket är varför miljöer med både inköpt och egenbyggd programvara kan använda en rutt för båda.

Behöver vi en licens för att använda det i vår pipeline?

Inte för de makeappx-kompatibla kommandona. Att paketera, packa upp, bunta, avbunta, validera och indexera resurser är licensfritt, så forge_msix fungerar som en äkta direkt ersättare för makeappx.exe utan att något behöver köpas. De värdeskapande flödena, alltså att skapa från ett manifest, signera, testa, bedöma, hantera certifikat och utvecklarregistreringskommandona, kräver en aktiv EtherApps Forge-licens.

Behöver byggagenten ha Windows SDK installerat?

Nej. CLI:t anropar Windows paketerings-API direkt, och den motorn är en operativsystemkomponent i stället för ett SDK-beroende, så paket får samma schemakontroll, block map och struktur som makeappx producerar. Agenten behöver Windows 10 version 1709 eller senare, eller Windows 11, på x64. Driftsättningen är en mapp du kopierar och lägger i PATH, utan installationsprogram.

Hur bör vi hantera kodsignering i CI?

Signera från ett certifikatlager via tumavtryck eller subjekt i stället för från en PFX på disk, så att inget lösenord skrivs in i en byggdefinition. Lägg till en RFC 3161-tidsstämpelserver så att signaturer förblir giltiga efter att certifikatet gått ut. Sätt utgivaren i ert manifest exakt lika med certifikatets subjekt och låt utgivarläget vara strikt, så att en avvikelse stoppar bygget i stället för att tyst ändra den identitet era kunder redan installerat.

Hur låter vi bygget falera när paketet är fel?

Kör valideringskommandot med JSON-utdata och förgrena på exitkoden. Det skiljer ett analyserat men ogiltigt paket från ett driftfel, vilket är skillnaden mellan ett trasigt paket och en trasig agent. Håll de flaggor som låter ett bygge passera validerings- eller semantikfel utanför release-pipelines; de är diagnosverktyg för att ta reda på varför ett paket inte byggs, inte inställningar att lämna påslagna.

Kan vi paketera vårt eget bygge om det behöver containerfixar?

Ja. Applikationer skrivna före MSIX förutsätter ofta beteenden containern inte tillåter, som att skriva bredvid sin egen körbara fil eller förvänta sig en fast installationssökväg. Forge lägger upp Package Support Framework så att de fallen rättas med fil- och registeromdirigering och korrigering av arbetskatalogen, utan ändring i er källkod. För egen programvara vill ni kanske hellre rätta beteendet vid källan, men ramverket gör att en release inte blockeras under tiden.

Hur blir det med uppdateringar för kunder som sidoladdar i stället för att använda en butik?

Generera ett app installer-manifest från det signerade paketet; det härleder identiteten från paketet självt och hanterar bundles. Publicera paketet och det manifestet på en HTTPS-plats, så kan installerade kopior uppdatera sig själva därifrån. Det ger sidoladdande och företagskunder en uppdateringsväg utan butikspublicering eller manuell ominstallation.

Kan vi rätta ett paket vi redan levererat utan att bygga om det?

Ja. Ett paket kan extraheras till en arbetskatalog, redigeras kirurgiskt, valideras och paketeras om: manifestvärden, capabilities, payload-filer och paketets virtuella register går alla att ändra, och varje manifeständring valideras innan den skrivs, så en felformad ändring avvisas i stället för att sparas. Ompaketering ändrar innehållshashen, så paketet måste signeras igen efteråt.

Start here

Gör en signerad MSIX till en artefakt av bygget, inte ett jobb någon utför vid release.

Börja med den kostnadsfria 7-dagars provperioden av EtherApps Forge och paketera ett riktigt bygge från början till slut, eller prata med oss om pipelinen ni redan kör och var paketeringssteget bör sitta i den.

  • Paketeringskommandona speglar makeappx ett till ett och kräver ingen licens, så ett fungerande CI-skript kan införa Forge genom att byta en binär i stället för att skriva om en pipeline.
  • Paketering, signering, validering och röktest är steg i samma verktyg, så en signerad MSIX faller ut ur release-bygget bredvid alla andra artefakter i stället för att sättas ihop för hand vid release.
  • Valideringen ger en egen exitkod för ett ogiltigt paket, så byggrinden fångar ett dåligt paket före en kund gör det.
  • Forge är en Win32-applikation som driftsätts inuti din egen miljö, så byggartefakter och signeringscertifikat lämnar aldrig din pipeline.