0

Is there no better Installer project in Visual Studio 2013 than the Setup projects or WiX?

I have a .vdproj and some WiX projects since Visual Studio 2008 which I now need to migrate to Visual Studio 2013. Do I still have to use the same two project types or is there a better solution?

Setup projects are still not supported with MSBuild and the WiX projects are still XML (although I see a visual designer is now available to purchase).

I am sick of both of them. I need something that is visual and that is supported by MSBuild. We have many custom actions too.

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
learnerplates
  • 4,257
  • 5
  • 33
  • 42

3 Answers3

4

There is also Advanced Installer which have a Visual Studio Installer extension (with UI) which is available in their free edition (from what I know). Their Installer extension for VS is also MSBuild compatible.

herman.smn
  • 1,214
  • 7
  • 9
  • I've seen this. Has anyone used it? and does it have an MSBuild task? I haven't seen msbuild mentioned. – learnerplates Jan 21 '15 at 10:48
  • It's not MsBuild based, but it can generate an MsBuild based project file for you on request: http://www.advancedinstaller.com/user-guide/qa-using-tfs.html and has a UI in visual studio: http://www.advancedinstaller.com/user-guide/tutorial-ai-ext-vs.html – jessehouwing Jan 21 '15 at 10:51
  • @learnerplates we have quite a lot of users, check our own forums to see how active we are: http://www.advancedinstaller.com/forums/ – Bogdan Mitrache Jan 21 '15 at 14:30
3

WiX is the default way to go for free solutions that need to do advanced steps and must be able to integrate into Team Build and MSBuild.

Product                  Free/Paid        VS designer    MsBuild Support
InstallShield LE              free                yes                yes
InstallShield Pro             paid                yes                yes
InstallAware                  paid                yes             yes 3)
Advanced Installer            free                yes                yes
NSIS                          free                 no                 no
MS VS Installer Projects      free                yes                 no
Wix Toolset                   free              no 1)                yes
InnoSetup                     free                 no                 no
PS App Deploy Toolkit         free              no 2)                 no

Remarks:

  1. There is an extension that seems to support a user interface for WiX
  2. Since it's PowerShell based you could use the Visual Studio PowerShell Tools.
  3. Advanced Installer can generate an MSBuild compatible .*proj file on request.

Links to products:

Remember that Team Build 2013 has a set of native extension points that allow you to execute PowerShell scripts after build which can trigger pretty much every type of installer project you need. Non-MSBuild-based systems like the PS AppDeploy Toolkit or NSIS can be triggered with relative ease this way.

XML and script-based UI's are generally easier to merge and branch and provide better maintainability over time as you're pretty much free to define the modules in separate files and provide comments on why certain files are deployed where or which commands are executed when.

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
jessehouwing
  • 106,458
  • 22
  • 256
  • 341
  • Many graphical tools are painful to maintain. As Branching and Merging of non-human-maintained files is usually very difficult. The fact that Wix doesn't mangle your XML files is actually a big pro if you're having to maintain different versions. – jessehouwing Jan 21 '15 at 10:46
  • Other systems, like NSIS, use a scripting language, which may be worth investigating. NSIS, however doesn't integrate with MsBuild and would need either a custom .targets file or be called in a post-build script. – jessehouwing Jan 21 '15 at 10:47
  • @jessehouwing - Correct me if I am wrong, but I haven't found a way to generate an MsBuild compatible *.proj file with InstallAware (point 3 in the list). The link you've provided points to Advanced Installer. – Yakimych Mar 30 '16 at 10:20
1

I used the extension Visual Studio Installer Projects Extension: VSI_Bundle. See the The Visual Studio Blog

It worked good for me.

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Bob Lokerse
  • 476
  • 6
  • 19
  • 1
    These do not support MsBuild nor Team Build. Generally it's not an option for advanced installers. – jessehouwing Jan 21 '15 at 10:24
  • 1
    This is what we've been using since VS2005. Its so complex now its difficult to maintain. Issues like its not supported by msbuild and it sometimes does not accept Project Outputs and instead you must point to the actualy assembly which has hardcode path. – learnerplates Jan 21 '15 at 10:44