Rules to Better Installers
RuleSummaryIntro
Since 1990, SSW has supported the developer community by publishing all our best practices and rules for everyone to see.
If you still need help, visit SSW Consulting Services and book in a consultant.
Hold on a second! How would you like to view this content?
Just the title!
A brief blurb!
Gimme everything!
Page Content
Developers should add a version number at the end of the out package. E.g. SSWCodeAuditor_v14.0.0.exe
Here is how you do it in Advanced Installer:
- In the navigation pane look for
Media
- Choose
Configuration tab and click in
MSI name text box which is located under
Output section
- Next to the text add
[|ProductVersion]. If the text-box is empty you may want to start it with
[|ProductName]

- Figure: Advanced Installer - Add version to output package
If you are syncing your Application Folder (or any other) with a local folder on a disk, you can specify which file or folders you want to sync. This is a very convenient way to keep your package smaller and clean.
Here is how you do it:
- Right click the
Application Folder and choose
Properties
- Click on Filters button to open the
Edit Filters dialog
- Click on
New button to create Include pattern. Alternatively you can switch to
Exclude Filters tab
- Enter the Pattern and press
OK on each screen

- Figure: Edit Filters dialog

- Figure: Bad Example - Synced folder contains files that are not supposed to be deployed

- Figure: Good Example - Synced folder is filtered so that it includes only files we want to deploy
Market is full of tools that can create Setup packages, but only a few are really good.
WiX is the ultimate tool which gives you complete freedom and control over Setup packages.
Here are reasons why WiX is the way to go:
- It is all done in XML
- It integrates with Visual Studio
- Full control over packages logic and UI
- It is a recommended choice by Microsoft
- It is FREE
-
- Figure: Good Example - WiX Installer for Code Auditor
But WiX has one bad side as well – learning curve is high. Not everyone can afford learning it. The alternative is Advanced Installer.
Advanced Installer makes it easy for you to create Setup packages using a very sophisticated GUI.
A few reasons why Advanced Installer could be your choice:
- It has a very sophisticated and easy to use GUI
- It gives you wide range of options (IIS, Dialog Editor, Custom Actions, Digital Signature, Auto Updater, App Virtualization, SCCM, etc)
- Price vs performance ratio is great + it has a FREE version which is in many cases more than enough
-
- Figure: Good Example - Advanced Installer
Devs need a way of sharing and consuming the source code or binaries.
VSTS is the best home to put it and share it across their organization because:
- it caches your packages
- it's a centralized place for your packages
- it's constantly evolving (some really cool features are coming...check the video below)
Sharing source or binaries via File Shares or Version Control
- Bad example
Sharing source or binaries via 3rd party tools like ProGet, MyGet
- OK example
Sharing source or binaries via packages created using VSTS Team Build
- Good example
-
- Figure: Start from
https://marketplace.visualstudio.com/items?itemName=ms.feed
VSTS is about to add benefits like Component Governance, which allows policies to be set over who can and cannot use the source or binaries E.g. Licensing (MIT might be ok and GPL not ok), security - in development
-
Good example: Sharing source or binaries via packages created using Sonatype Nexus.
Already supports Component Governance Additional info
- At 2:50 Mario Rodriguez talks about the bad ways customers share code
- At 6:30 Mario explains to Danijel Malik how VSTS helps with the nasty problem of Diamond Dependencies (aka Binary Consumption Hell) (E.g. That's when devs are trying to get the new version of say Newtonsoft v1.9 in all projects, but one at a time)