Conditionele setup in Visual Studio 2008

Het bouwen en testen van een installatieset kost altijd meer tijd dan
gewenst. Het samenstellen van een gemiddelde installatie kan per project rustig
op een week werk uitmonden. Naast dat geduldig samenstellen van de uit te rollen programmaonderdelen, de dialogen en vereiste voorinstallaties (prerequisites) ben je ook enorm veel tijd kwijt met het correct aftesten op de verschillende OS-en waarop het moet landen.

Visual Studio levert tooling voor het samenstellen van een installatie in de
vorm van projecten en een wizard. Er zijn commerciële producten die veel verder
gaan met het bieden van gemak en functionaliteit maar de installer van MS komt
best wel een eindje. Je moet alleen geduld hebben om te puzzelen.

Vandaag heb ik de kans gehad om me te verdiepen in het conditioneel
installeren van registry-instellingen. Dit gaat ook op voor programmaonderdelen
en ‘custom actions’.

een militair verkleed als varen,gras, etc.

Stap 1: Start een solution in VS2008

Maak een nieuw WinForm project aan. Inhoudelijk is dit niet relevant maar we
moeten iets te installeren hebben 😉

Voeg een extra Setup Wizard project toe aan het eerste project:

Nieuw setup project

Behoudt de standaard keuzes maar voeg wel het eerste project toe:

Setup Wizard

Hercompileer alles en laat de setup samenstellen (rechtermuis- klik op het
setup project – Rebuild). Je kunt deze gerust een keer installeren en
de-installeren. Alle geïnstalleerde onderdelen worden weer netjes
verwijderd.

Stap 2: Voeg een dialoog voor de gebruikerskeuze toe

Bovenaan in de solution explorer is enigszins verstopt de toegang tot een
aantal schermen aanwezig. Hier kan oa. voor het onderhoud van de toe te voegen
scherm, registry sleutels en programma onderdelen gekozen worden:

Solution Explorer - dialogs

Kies binnen het setup project voor de user
interface editor. Kier hierbinnen voor het toevoegen van een extra
dialoog:

Add dialog

Vervolgens kan uit een aantal schermen
gekozen worden. Wij kiezen voor Checkboxes (A):

Checkboxes (A)

Plaats deze bij voorkeur in het Start blokje, vlak na het Welkom scherm.

Binnen VS2008 is dit scherm niet visueel. Alleen via de properties kan het
voorkomen veranderd worden. Er staan standaard vier checkboxen op. Schakel de laatste drie uit (visible = false) en vink de eerste standaard aan (Value =
Checked). Pas wat teksten aan en vul de property waarde met
CHECKBOXADDKEY:

Dialog Properties

Build opnieuw het Setup project en zie dat
inderdaad het scherm netjes getoond wordt:

Bekijk het maar

Stap 3: De magie…

Ok, het scherm is gebouwd; de keuze is gemaakt. Nu moet dit toegepast gaan
worden. Open de registry Editor en voeg een sleutel en waarde toe.

Hier wordt HKEY_CURRENT_USER | Bla | BLABla | BlaBlaBla
toegevoegd:

Registry sleutel toevoegen

En als extraatje wordt op een condition opgegeven die verwijst naar de
checkbox op het door ons toegevoegde dialoog met als property
CHECKBOXADDKEY:

Voeg de conditie toe

Build het Setup project voor de laatste keer en doorloop de installatie
succesvol (laat ons vinkje actief).

Open de Windows Registry Editor (regedit) en navigeer naar onze toegevoegde
sleutel:

Now you see me, now you don't...

De-installeer de setup en installeer deze vervolgens nogmaals maar nu zonder
het vinkje en zie dat de registry sleutel ditmaal niet aangemaakt wordt.

Conclusie

Het is kinderspel geworden om de gebruiker (beperkte) invloed op het verloop
van de installatie te laten uitoefenen. Het is niet mogelijk om de checkbox
conditioneel aan of uit te vinken maar voor de meeste doeleinden is de hierboven
beschreven functionaliteit meer dan voldoende.

Advertenties