Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update support, 64bit support, better naming #1453

Merged
merged 1 commit into from
Mar 1, 2019

Conversation

bitdisaster
Copy link
Contributor

This PR brings several MSI improvements that were repeatedly requested by customers (IT administrators)

Update Support
The WIX template already accommodated a <UpgradeCode/> tag that is necessary uninstalling older versions of the MSI. However, to actually trigger an uninstall when installing a new one, it was missing the <MajorUpgrade/> tag. No more. Old version will be removed now.

64bit Support
When offering your App as 64-bit, administrators also expect the installer package to behave 64-bit. Meaning that the installer is puts things under Program Files not Program Files (x86) and registry keys are written under HKLM\SOFTWARE\... and not HKLM\SOFTWARE\WOW6432Node\... A new optional parameter -arch=VALUE allows to define the architecture for the packaging process. While only the value x64 will currently have an effect, it leaves the door open for future architecture differentiations.

Better Naming
Many customer struggle with the concept what the MSI in Squirrel is and what machine-wide installer in this context means. Naming the MSI MyApp Machine-Wide installer implies that actually MyApp gets installed machine-wide when in reality only an installer that installs MyApp gets installed. So this PR attempts to make it more clear what the MSI is and what it installs. The best way to describe it is an installer for a tool that helps deploy MyApp on per-user bases. Therefor the MSI will be listed as MyApp Per-User Deployment. Also the new folder naming should make it clear what gets installed. C:\Program Files\MyApp Deployment\MyAppDeploymentTool.exe

@@ -134,6 +135,7 @@ int executeCommandLine(string[] args)
{ "no-msi", "Don't generate an MSI package", v => noMsi = true},
{ "no-delta", "Don't generate delta packages to save time", v => noDelta = true},
{ "framework-version=", "Set the required .NET framework version, e.g. net461", v => frameworkVersion = v },
{ "arch=", "Defines the architecure of the MSI package, e.g x64", v => packageAs64Bit = v == "x64"},
Copy link
Contributor

@anaisbetts anaisbetts Feb 28, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is kind of a fib, since I can't specify like, arm or ia64 here. Can we rename this to msi-win64=true? I'd also like to make the doc string something like:

Mark the MSI as 64-bit, which is necessary for some Enterprise deployment technologies

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thought behind using the more generic option here was to have the freedom for possible future adjustments related to architecture without introducing yet another option. But if you feel msi-win64 is the better choice then it works for me to.

vendor/wix/template.wxs Outdated Show resolved Hide resolved
@bitdisaster
Copy link
Contributor Author

all addressed

@anaisbetts anaisbetts merged commit 475d554 into Squirrel:master Mar 1, 2019
@anaisbetts
Copy link
Contributor

Thanks for the PR!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants