More on Windows Installer

March 5th, 2010

It’s been quite a while since I posted anything here. There are many factors that influenced this but the two most important are the fact that I changed my job (and now I’m working with completely different set of technologies, namely Solaris, C++, Java, etc.) and the fact that I have been working on a little program of mine currently called SharpSetup. This program is based on my previous thoughts expressed in this blog (see Windows Installer thoughts and Bootstrapper). On the new site I will try to show the motives for creating the program, who is it for, present some design choices, technical problems, show how it should be used and in general describe all possible aspects of SharpSetup.


Detecting local SQL Server instances

August 19th, 2009

Detecting SQL Server instances is quite a common task. We know why there is a need for detecting servers (to make UI more intuitive and less error-prone), we know how to present it to the user (usually an editable combo box) but how to get the actual list of available servers is not always easy.
Read the rest of this entry »

Packaging .NET ActiveX

August 2nd, 2009

Packaging ActiveX controls written in unmanaged code is described pretty well. On the other hand packaging controls written in .NET is somewhat less documented. And you can get weird errors like “The style of the INF is different than what was requested.”
Read the rest of this entry »

lighttpd, simple vhost and php

June 6th, 2009

Configuring lighttpd to support multiple virtual hosts is pretty simple. Configuring lighttpd to support PHP is just trivial. But how to configure lighttpd with simple vhost to support PHP that is running with permissions of system user that is assiciated with specified virtual host is not that obvious. But it is certainly possible. Read the rest of this entry »


May 23rd, 2009

In my first post I described an idea to write software installer using C# (or any other language). The installer should consist of 3 main parts: bootstrapper, main GUIc and basic MSI file (possibly with c# custom actions). In this article I’m going to describe the bootstrapper. Read the rest of this entry »

Updating version number in .exe files

May 14th, 2009

When software package is being built as part of continuous integration process it is usually assigned a unique version number. When we build whole project at once it is quite simple: sources are downloaded from source control repository, scripts update version number in source files (for C# applications it is usually AssemblyInfo.cs file), project is built and published. Sometimes, however, we would like to split build of one product across multiple projects (as seen by CI software, for example CruiseControl.NET). Read the rest of this entry »

Windows Installer thoughts

May 9th, 2009

Windows Installer (also known as Microsoft Installer – MSI) is crap. Not that I’m anti-MS. Every company of this size has good products (here I would count .NET Framework and Visual Studio), medium quality products (Windows), low quality products (Visual Source Safe) and crap (Windows Installer). But surely there must be a way to make it a little bit more developer-friendly. Read the rest of this entry »