EtherApps Forge 1.0.6 är släppt och breddar produkten i två riktningar samtidigt. Legacy-applikationer som paketeras utan problem men sedan beter sig fel inne i MSIX-containern kan nu åtgärdas med Package Support Framework-fixar som läggs upp som en del av paketeringen. Och för första gången är Forge inte bara till för applikationer du fångar i någon annans miljö: forge_msix-CLI:t är en direkt ersättare för Microsofts makeappx.exe, så att ett utvecklingsteam eller en programvaruleverantör kan göra sin egen build-mapp till en signerad, validerad MSIX inuti en befintlig pipeline.

Båda förändringarna bemöter samma klagomål från motsatta ändar av paketeringsproblemet. Att få ett paket byggt har inte varit den svåra delen på ett tag. Att få det att köra korrekt, och att få det att köra korrekt varje gång ett bygge går ut, är där arbetet faktiskt ligger.

PSF-kompatibilitetsfixar: när appen paketeras fint men inte uppför sig

Det mest frustrerande utfallet i ett MSIX-program är inte ett paket som inte går att bygga. Det är ett paket som byggs, signeras, installeras, startar och sedan tyst gör fel sak.

Det händer eftersom MSIX-containern ändrar de regler en äldre applikation skrevs mot. Tre mönster orsakar det mesta:

  • Skriva bredvid sin egen körbara fil. Applikationer som lägger inställningar, loggar eller licensfiler i sin egen installationsmapp skriver till en plats som containern skyddar.
  • Förutsätta en fast installationssökväg. Allt med en hårdkodad C:\Program Files\Vendor\App-sökväg, eller en startare som förväntar sig en viss arbetskatalog, hittar ingetdera där den förväntar sig det.
  • Läsa maskinregisterplatser. Konfiguration under HKLM som containern omdirigerar ligger inte längre där applikationen letar efter den.

Package Support Framework är Microsofts svar med öppen källkod på precis detta. Det tillämpar riktade fixar vid körning, utan någon ändring i applikationens källkod, och de viktiga är fil- och registeromdirigering plus korrigering av arbetskatalogen. Om en legacy-applikation inte längre har någon leverantör som bygger om den är PSF ofta skillnaden mellan en applikation som levereras och en som skrivs av.

Från 1.0.6 lägger Forge upp ramverket som en del av paketeringen i stället för att lämna det som ett manuellt steg efteråt. Den praktiska effekten på en bedömning är att kategorin applikationer märkta "levereras med fix-ups" blir betydligt större, och kategorin "kan inte flytta ännu" blir mindre. Vi har skrivit om varför det här åtgärdslagret spelar roll för app attach och MSIX-leverans i Package Support Framework och risken med MSIX app attach, och det gäller lika direkt för paket som levereras via Intune till fysiska enheter.

Paketering för utvecklare och ISV:er: era egna builds, signerade och validerade

Capture-first-paketering löser ett legacy-problem: installationsprogrammet är borta, så den körande applikationen blir sanningskällan. Det var aldrig hela marknaden. Många team har en fullt fungerande build-mapp och tycker ändå att MSIX är otympligt, eftersom verktygen runtomkring förutsätter en installerad Windows-SDK, ett signeringssteg påklistrat efteråt och en människa som kontrollerar resultatet.

forge_msix är byggt som en direkt ersättare för makeappx.exe. Det anropar Windows paketeringsmotor direkt i stället för att förlita sig på att SDK:t är installerat på byggagenten, och paketeringskommandona tar samma flaggor, så ett befintligt skript fortsätter fungera när du byter binär.

Utöver paritet lägger releasen till de delar en release-pipeline faktiskt behöver:

# Scaffold a manifest from the built executable
forge_msix prepare .\publish\MyApp.exe
# Create and sign in one step, from the agent certificate store
forge_msix create -s .\publish --package-output .\artifacts\MyApp.msix `
  --sign --cert-sha1 $env:SIGNING_THUMBPRINT --cert-store My --cert-machine-store `
  --timestamp-server http://timestamp.digicert.com --validate-schema
# Gate the build on structural validation
forge_msix validate /p .\artifacts\MyApp.msix --json

Tre detaljer spelar roll när du kopplar in det här i CI. Signera från ett certifikatlager via tumavtryck i stället för en PFX på disk, så att inget lösenord hamnar i en byggdefinition. Lägg till en RFC 3161-tidsstämpel så att signaturer förblir giltiga efter att certifikatet gått ut. Och förgrena på exitkoden, eftersom validate skiljer "paketet analyserades och är ogiltigt" från "själva körningen misslyckades", vilket är skillnaden mellan ett trasigt bygge och en trasig agent.

Det finns också ett röktestkommando som installerar det signerade paketet, startar och stänger det, avinstallerar det och skriver en JSON-rapport, plus en bedömningsomgång som poängsätter ett paket mot signaler för god paketeringspraxis. Ingetdera hör hemma i varje commit. Båda är värda att köra på en release candidate.

För team som levererar utanför en butik genererar make-appinstaller manifestet .appinstaller från det signerade paketets verkliga identitet, så att sidoladdade kopior kan uppdatera sig själva från en HTTPS-plats.

Vad det betyder om din miljö är blandad

De flesta organisationer är inte renodlat det ena eller det andra. De har inköpt programvara med förlorade installationsprogram, en handfull internt byggda verksamhetsapplikationer, och en Windows 11- eller Intune-deadline som omfattar alltihop. Hittills har de två halvorna tagit olika vägar och olika verktyg.

Med 1.0.6 delar de en paketeringsväg: capture-first för applikationerna där installationsprogrammet är borta, paketering från build-mapp för dem era egna utvecklare kompilerar, PSF-åtgärder för allt containern stör, och samma signering, validering och Intune-leverans på slutet. Vägvalet ligger fortfarande hos en människa. Mekaniken slutar vara två separata projekt.

Tillgänglighet

EtherApps Forge 1.0.6.0 är tillgängligt nu. Forge är en Win32-applikation som du driftsätter inuti din egen miljö i stället för en värdbaserad tjänst, så fångster och paketering stannar under din kontroll, och den fångar både från äldre Windows-versioner och från aktuella. Varje licens inkluderar utbildning och support, och det finns en kostnadsfri 7-dagars provperiod så att ett paketerings-, endpoint- eller utvecklingsteam kan bevisa resultatet på en riktig applikation innan den bredare miljön tas in.

Om ditt hinder är en legacy-applikation som ingen kan bygga om, börja med modernisera äldre Windows-applikationer eller vår guide om att paketera om en applikation när installationsprogrammet är borta. Ligger hindret på leveranssidan täcker MSIX-paketering och deployment signering, PSF-granskning och Intune-utrullning. Produkten själv finns på EtherApps Forge.

Testa EtherApps Forge gratis i 7 dagar och paketera en riktig applikation, fångad eller byggd, från källa till signerad MSIX.