Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
    
More info is needed. Are you using Visual Studio? If so, then what version? If not, then still describe your environment. –  Job Jul 27 '11 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 '11 at 16:46

1 Answer 1

up vote 10 down vote accepted

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.

share|improve this answer
    
I recommend using Jenkins to do your builds. –  Bernard Jul 27 '11 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 '11 at 9:46
    
Good summary of the steps. Never seen "Advanced Installer" before - any ideas on how it compares to WiX? –  Steve Haigh Aug 24 '11 at 14:04

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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