packaging/windows/msix/README.md
(Originally written by Alvin on 2020-06-02 ~ 2020-06-03)
Documentation sources:
Most of the assets starts out extracted from the package that the MSIX
Packaging Tool generated, with fileicon.png being the exception. Since the
assets are target-based, we need to use makepri to generate a pri file.
The assets are placed under the Assets dir when inside the package, so this
dir structure needs to be replicated. Also, in order to not mess up makepri,
the Assets dir needs to be placed in its own dir with no other files in it.
I chose to name it pkg.
I generated a priconfig.xml file using this command:
makepri.exe createconfig /cf priconfig.xml /dq en-us
... however I also commented out the packaging section.
Read more about the app icons on https://docs.microsoft.com/en-us/windows/uwp/design/style/app-icons-and-logos
TODO: On editing the assets...
The manifest is constructed by referencing the official documentation and the two manifests generated by DAC (as in Krita 4.2.8 store version) and MSIX Packaging Tool. A huge portion is manually rewritten though.
There are several issues that couldn't be resolved:
Needs:
Steps (if running manually):
$PLUGINSDIR and uninstall.exe.nsis/uninstall.exe insidemanifest.xml.in into manifest.xml then make necessary amendments to
it, including replacing the @-substitutions.set KRITA_DIR=C:\path\where\you\extracted\the\Krita\files, and then run
build_msix.py.
set SIGNTOOL_SIGN_FLAGS=/f "absolute_path_to_keyfile.pfx" /p password
out\krita.msixThe script and related resources are also configured and installed into
${CMAKE_INSTALL_PREFIX}/krita-msix, which is then used by the Binary Factory
pipeline. On the Binary Factory, we also need to set KRITA_SHELLEX for it
to copy the files required for the shell extension.
New-SelfSignedCertificate -Type Custom -Subject "CN=03E730BB-6849-4762-9BDB-10CD7FFDB2C1" -KeyUsage DigitalSignature -FriendlyName "Fake Krita Foundation certificate for debugging only" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")