7

I am rewriting a vb6 installer into NSIS. One of my priorities is to compile-to-release in the least number of steps possible; ideally, a one click process, in which all needed files are included, registered, and put in the right folders.

At the moment, I am creating several folders. One for app_path files, one for system_files, etc. So, every time that a file is modified or a new file added, I just drop it in the right folder and recompile. However, if a completely new file is included, steps like registering a DLL still need to be implemented in code.

Any suggestion on how to improve this approach?, or on how to design a one-click compile-to-release process?

EDIT:

The original installer was created using the Package and Deployment wizard from Visual Basic 6.0. Every time that I need to release my software, I found my self updating and adding files, updating the respective lst file, and repackaging everything (CAB files, dlls, etc) into one exe in order to release it from our website. It is a cumbersome process.

Additionally, due to pure design. The original software has been copy pasted in several projects, creating several application and its respective VB6 installers (repeating a lot of common files). Ideally, there would be one single installer, which allows the installation of the different executable and manages all the shared files among them.

2
  • More info is needed. Are you using Visual Studio? If so, then what version? If not, then still describe your environment.
    – Job
    Jul 27, 2011 at 16:26
  • Do yourself a favor and get a license of Advanced Installer (there's also a Freeware Edition). It's not really expensive and well worth the money. Grab the demo! You can also integrate it easily into your build process and the configuration files are plain XML. There's nearly no scripting necessary and DLL/COM-Registration during installation is a one-click action. It also upgrades versions easily and provides uninstall mechanims. I LOVE IT.
    – Falcon
    Jul 27, 2011 at 16:46

1 Answer 1

11

Time for some serious "Continous Integration" for you.

These are the basic ingredients:

First you setup your repository. Put all the source files of the application into it. You can use it to manage source code versions, features, branches... but that's a whole topic by itself.

Then get a build tool like Cruisecontrol.net or Jenkins. Make it fetch and compile your code from the repository. The build tool can then take further actions like executing tests or building an installation package. External tools are often integrated as ant/nant tasks. You can integrate almost anything.

That's about everything you need to a one-click to installation-package build cycle.

Of course, there've been written whole books on these subjects. Read some articles on the web and get yourself the software that suits your needs the most. Then read some tutorials. You'll find everything via google.

3
  • I recommend using Jenkins to do your builds.
    – Bernard
    Jul 27, 2011 at 21:26
  • I recommend Wix to create your installers, very easily script-driven, which means your build server can run it automatically.
    – gbjbaanb
    Jul 28, 2011 at 9:46
  • Good summary of the steps. Never seen "Advanced Installer" before - any ideas on how it compares to WiX?
    – Steve
    Aug 24, 2011 at 14:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.