|
||
---|---|---|
.. | ||
MSIX | ||
PowerToysSetup | ||
PowerToysSetupCustomActions | ||
License.rtf | ||
PowerToysSetup.sln | ||
README.md | ||
Version.props |
PowerToys installer instructions
MSI installer instructions
- Install the WiX Toolset Visual Studio 2019 Extension.
- Install the WiX Toolset build tools in the development machine.
- Open
powertoys.sln
, select the "Release" and "x64" configurations and build thePowerToysSetup
project. - The resulting installer will be built to
PowerToysSetup\bin\Release\PowerToysSetup.msi
.
MSIX installer instructions
One-time tasks
Create and install the self-sign certificate
For the first-time installation, you'll need to generate a self-signed certificate. The script below will generate and add a cert to your TRCA store.
- Open
Developer PowerShell for VS
as an Admin - Navigate to your repo's
installer\MSIX
- Run
.\generate_self_sign_cert.ps1
Note: if you delete the folder, you will have to regenerate the key
Elevate Developer PowerShell for VS
permissions due to unsigned file
reinstall_msix.ps1
is unsigned, you'll need to elevate your prompt.
- Open
Developer PowerShell for VS
as admin - Run
Set-ExecutionPolicy -executionPolicy Unrestricted
Allow Sideloaded apps
In order to install the MSIX package without using the Microsoft Store, sideloading apps needs to be enabled. This can be done by enabling Developer Options > Sideload apps
or Developer Options > Developer mode
.
Building the MSIX package
- Make sure you've built the
Release
configuration ofpowertoys.sln
- Open
Developer PowerShell for VS
- Navigate to your repo's
installer\MSIX
- Run
.\reinstall_msix.ps1
from the devenv powershell
What reinstall_msix.ps1 does
reinstall_msix.ps1
removes the current PowerToys installation, restarts explorer.exe (to update PowerRename and ImageResizer shell extension), builds PowerToys-x64.msix
package, signs it with a PowerToys_TemporaryKey.pfx, and finally installs it.
Cleanup - Removing all .msi/.msix PowerToys installations
$name='PowerToys'
Get-AppxPackage -Name $name | select -ExpandProperty "PackageFullName" | Remove-AppxPackage
gwmi win32_product -filter "Name = '$name'" -namespace root/cimv2 | foreach {
if ($_.uninstall().returnvalue -eq 0) { write-host "Successfully uninstalled $name " }
else { write-warning "Failed to uninstall $name." }
}