This commit is contained in:
@@ -259,17 +259,19 @@ to submitting for certification — is written up in
|
||||
# One-off: draw the logos and the exe icon (already committed, rerun after edits)
|
||||
powershell -File Packaging\New-Assets.ps1
|
||||
|
||||
# A check on your own machine: your architecture alone
|
||||
powershell -File Packaging\build-msix.ps1 -Architectures x64
|
||||
# A check on your own machine
|
||||
powershell -File Packaging\build-msix.ps1
|
||||
|
||||
# For Partner Center — the identity is the one reserved there
|
||||
powershell -File Packaging\build-msix.ps1 -Version 1.0.1.0 `
|
||||
-IdentityName 12345AleksandrNeichev.CursorLang -Publisher "CN=ABCD1234-..."
|
||||
```
|
||||
|
||||
The result is `artifacts\packages\CursorLang-<version>.msixbundle` covering x64
|
||||
and arm64; next to it lie the packages of single architectures. Upload the bundle
|
||||
to Partner Center as it is.
|
||||
The result is `artifacts\packages\CursorLang-<version>-x64.msix`. Upload it to
|
||||
Partner Center as it is.
|
||||
|
||||
Only x64 is built. An arm64 build would double the size of every release for the
|
||||
sake of machines that run the x64 one under emulation anyway.
|
||||
|
||||
Nothing here is signed: the Store signs the package itself, and for installing it
|
||||
on this machine the layout is registered instead — see `-Install` below.
|
||||
@@ -280,7 +282,7 @@ MSIX cannot install a runtime as a package dependency.
|
||||
To see the package working on this machine, build it with `-Install`:
|
||||
|
||||
```powershell
|
||||
pwsh -File Packaging\build-msix.ps1 -Architectures x64 -Install
|
||||
pwsh -File Packaging\build-msix.ps1 -Install
|
||||
```
|
||||
|
||||
The application then shows up in the Start menu like any installed one. What
|
||||
@@ -296,3 +298,39 @@ To remove it by hand:
|
||||
```powershell
|
||||
Remove-AppxPackage (Get-AppxPackage -Name AleksandrNeichev.CursorLang).PackageFullName
|
||||
```
|
||||
|
||||
## Building the installer
|
||||
|
||||
The same application also comes as an ordinary MSI, for handing round outside the
|
||||
Store — to try it out before the Store has passed judgement, or if it never does.
|
||||
Nothing has to be installed beyond the .NET SDK: WiX comes from a NuGet package,
|
||||
the same way `makeappx` does.
|
||||
|
||||
```powershell
|
||||
# Build it and run it afterwards, to see what a user sees
|
||||
pwsh -File Packaging\build-installer.ps1 -Install
|
||||
|
||||
# Everything a release needs
|
||||
pwsh -File Packaging\build-installer.ps1 -Version 1.0.1
|
||||
```
|
||||
|
||||
The result is `artifacts\installers\CursorLang-<version>-x64.msi`. Everything
|
||||
travels inside the .msi; there is no cabinet to send alongside it.
|
||||
|
||||
It installs for the current user alone, into `%LOCALAPPDATA%\Programs\CursorLang`,
|
||||
and so asks for no administrator rights and no consent dialog. Uninstalling goes
|
||||
through Apps in Settings like any other program and takes the startup entry with
|
||||
it — otherwise Windows would go on listing an application that is no longer there.
|
||||
|
||||
Nobody signs the installer, so Windows warns about an unknown publisher and the
|
||||
user has to insist. Buying a certificate would not silence it at once either:
|
||||
SmartScreen goes by reputation, and a fresh certificate has none until enough
|
||||
people have installed the application.
|
||||
|
||||
Two things about the WiX project are worth knowing before touching it. It pins
|
||||
WiX 5 rather than the current 7: from version 6 the toolset asks every build to
|
||||
accept the Open Source Maintenance Fee licence — free below $10,000 of yearly
|
||||
revenue, but a decision for a person rather than for a build script. And it turns
|
||||
off three ICE validation rules: MSI still assumes an installation for the whole
|
||||
machine, and installing into the user's own profile trips rules that describe
|
||||
exactly what was intended here.
|
||||
|
||||
Reference in New Issue
Block a user