-
Install from the PowerShell Gallery
Install-Module -Name MSIXForcelets -Scope CurrentUser Import-Module MSIXForcelets -
Fetch the tooling (one-time)
The published module stays lean — the Windows SDK packaging tools and the Package Support Framework binaries are downloaded on demand. Since v1.0.2 a single umbrella cmdlet pulls everything in one go:
Install-MSIXForceletsAllRequirements # MSIX tooling + Tim Mangan PSF + Microsoft PSFRe-run with
-Forceto update existing components (or-Confirm:$falsefor an entirely non-interactive run). The individual updaters are still there if you want to pick one:Update-MSIXTooling # Windows SDK: makeappx, signtool, msixmgr Update-MSIXTMPSF # Tim Mangan Package Support Framework Update-MSIXMicrosoftPSF # Microsoft Package Support FrameworkThe tooling is stored outside the module version folder, so module updates keep it — see Where the tooling lives.
-
Open, fix, repack & sign
$cert = New-MSIXSelfSigningCert -Subject 'CN=Contoso' -Password 'pw' $pkg = Open-MSIXPackage -MsixFile 'C:\Apps\WinRAR.msix' -Force # apply a ready-made fix... Add-MSIXFixWinRAR -MSIXFolder $pkg.FullName Close-MSIXPackage -MSIXFolder $pkg.FullName -MSIXFile 'C:\Apps\WinRAR_fixed.msix' Set-MSIXSignature -MSIXFile 'C:\Apps\WinRAR_fixed.msix' -PfxCert $cert
Where the tooling lives
Since v1.0.6 the downloaded tooling sits in the module root next to the version
folders — Update-Module no longer triggers a new download, and every installation
(all users or current user) keeps its own tooling.
C:\Program Files\WindowsPowerShell\Modules\MSIXForcelets\
1.0.5\
1.0.7\
Tooling\ # MSIXPSF\, Libs\MSIXPackaging\, Libs\MSIXCore\
| Installation | Tooling folder (example) |
|---|---|
-Scope AllUsers |
C:\Program Files\WindowsPowerShell\Modules\MSIXForcelets\ToolingC:\Program Files\PowerShell\Modules\MSIXForcelets\Toolingdownloads need an elevated PowerShell |
-Scope CurrentUser |
Documents\WindowsPowerShell\Modules\MSIXForcelets\ToolingDocuments\PowerShell\Modules\MSIXForcelets\Tooling |
| Source checkout | the src folder itself |
Installed both for all users and for the current user? Each installation uses its own
Tooling folder — an all-users installation never writes into a user profile.
How the module finds it
On import the first match wins — the banner shows the result in its Tooling line:
$env:MSIXFORCELETS_TOOLING, if set — e.g. a shared team folder- the module folder itself, if it already contains the tooling (source checkout, versions up to 1.0.5)
<module root>\Tooling, when the module is loaded from a version folder%LOCALAPPDATA%\MSIXForceletsToolingotherwise (e.g. a source checkout without tooling)
Updating from 1.0.5 or older
Older versions downloaded the tooling into their own version folder. After Update-Module
the import banner points this out. Take the tooling over without downloading it again, then remove
the old versions — or simply run Install-MSIXForceletsAllRequirements to download it fresh.
Update-Module MSIXForcelets
Import-Module MSIXForcelets -Force # load the new version; the banner shows the hint
Copy-MSIXTooling # no download; elevated for AllUsers
Import-Module MSIXForcelets -Force # activate the copied tooling
Get-InstalledModule MSIXForcelets -AllVersions |
Where-Object Version -ne (Get-Module MSIXForcelets).Version |
Uninstall-Module