PowerToys/installer
martinchrzan bc301f269a
New color picker module - integrated from github.com/martinchrzan/Col… (#4778)
* New color picker module - integrated from github.com/martinchrzan/ColorPicker

* Trying to fix build in github

* Replaced icon in the settings to use font icon instead of path icon

* Closing ColorPicker.exe when PowerToys process closed, added color picker project into runner dependencies, restoring cursors on exit, added ManagedCommon as a dependency into installer

* User/ryanbod/fix colorpicker release (#5046)

* Changing configuration to x64 instead of AnyCPU.   The previous configuration was preventing the ManagedCommon binary from being loaded in Release.

* Updating MSI Installer with new icons (#4998)

* Adding missed dll into installer

* Fixed potential exception

* Creating settings.json on the first start when there are none, fixed default keyboard shortcut

* Added ColorPicker.exe.config into installer

* Start filewatcher after default settings file is created

* Fixing build

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
2020-07-18 21:27:36 +02:00
..
MSIX Move keyboard manager POC code to dev branch (#1455) 2020-04-08 14:28:39 -07:00
PowerToysSetup New color picker module - integrated from github.com/martinchrzan/Col… (#4778) 2020-07-18 21:27:36 +02:00
PowerToysSetupCustomActions sln: do not use PCH on CI (#3106) 2020-05-25 10:59:05 +03:00
VCRuntime Remove VCRedist Merge Modules, copy dlls instead 2020-05-15 12:01:21 -07:00
License.rtf moving the license.rtf file out of the root dir. compiled both msix and msi and both worked. (#1565) 2020-03-13 08:48:24 -07:00
PowerToysSetup.sln FancyZones and Shortcut Guide initial commit 2019-09-05 18:12:40 +02:00
README.md Merge ImageResizer into master (#1469) 2020-03-12 09:02:34 -07:00
Version.props Update version to 0.19.3 (#5033) 2020-07-16 17:15:05 +02:00

PowerToys installer instructions

MSI installer instructions

  1. Install the WiX Toolset Visual Studio 2019 Extension.
  2. Install the WiX Toolset build tools in the development machine.
  3. Open powertoys.sln, select the "Release" and "x64" configurations and build the PowerToysSetup project.
  4. 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.

  1. Open Developer PowerShell for VS as an Admin
  2. Navigate to your repo's installer\MSIX
  3. 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.

  1. Open Developer PowerShell for VS as admin
  2. 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

  1. Make sure you've built the Release configuration of powertoys.sln
  2. Open Developer PowerShell for VS
  3. Navigate to your repo's installer\MSIX
  4. 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." }
}