Skip to content

Latest commit

 

History

History
82 lines (63 loc) · 2.76 KB

README.md

File metadata and controls

82 lines (63 loc) · 2.76 KB

Using Wix on Windows to build the MSI package

The following might be missing something, please revise.

  • You probably want to be on a tagged version of the apps repo.

  • In the root of the apps repo, build the windows exes and place the resulting exes in this directory. I guess this currently only works on Linux.

    make windows
    

    The Makefile in this directory has a target exes that does the build and copying.

  • Install Wix 3:

  • Open a terminal in this directory. We have a script that builds the msi using Wix candle & light tools.

    The script takes the version number of the package that it should produce. We shall pass the typical tagged version, and a 4th digit (0) will be added, per windows convention.

    ./build-msi.bat 0.0.6
    
  • You can try installing the msi with:

    msiexec /i tkey-ssh-agent-0.0.6.0.msi`
    

Running Wix using Wine in a container on Linux

You can first build the windows exes and copy them here, and then build the msi with a specific version like this:

make exes
make SEMVER=0.0.6 msi

This uses the ghcr.io/tillitis/msi-builder:1 image, which can be built locally using the Makefile's build-msi-builder target.

Notes

We do not enable the agent to run automatically at startup, leaving this to the decision of the user. But we do install a shortcut in the folder for "All Users Start Menu Programs", so it ends up on the user's Start Menu (in TKey SSH Agent\TKey SSH Agent). Running this shortcut starts the tray executable with our default arguments --uss -a tkey-ssh-agent. User can copy this shortcut to their "Startup" folder, as described in this article. Or by running the following PowerShell commands:

$w = new-object -comobject wscript.shell
$prgs = $w.specialfolders('allusersprograms')
$startup = $w.specialfolders('startup')
copy "$prgs\TKey SSH Agent\TKey SSH Agent.lnk" "$startup\"

Also, the default configuration relies on finding a pinentry program from the Gpg4win package. It can be installed by running winget install GnuPG.Gpg4win manually. Note that winget does not have support for dependencies that are pulled in automatically. But since the msi package will also be available as a winget package, this dependency seems fine.