Napokban készültem el egy alkalmazással, amit Visual Studio 2008 alatt .NET 2.0 felhasználásával készítettem. A megrendelõ kérésének megfelelõen – és hát az alkalmazás sem indokolta – csak .NET 2.0-t használtam.

A kész alkalmazásomat – tekintettel annak nagyon egyszerû mivoltára – csak a VS2008 MSI telepítõjével akartam becsomagolni. Elkészülvén a csomaggal, azt magamnál futtatva minden rendben, irány a felhasználó. Ekkor ért az elsõ meglepetés, itt a telepítõ a .NET 3.5-es csomagot kereste…

Vissza, ellenõrzés (prerequsite-nek csak a .NET 2.0 és az MSI 3.1 van beállítva), teszt (üres virtuális gépen, és tényleg, a .NET 2.0 ellenõrzése, telepítése után nekiáll panaszkodni a .NET 3.5 után (Persze ez nálam simán nem jöhetett ki, hisz a VS2008 ezt is alapból telepíti).

Hosszas nézelõdés, keresgetés és ellenõrzés után rájöttem, hogy a gyárilag létrehozott telepítõcsomag alapból 🙁 tartalmaz egy felvett kulcsot a Launch Conditions alatt .NET Framework néven. Sokáig átsiklottam felette (azt gondolván, hogy a Prerequsite állította be), de egyik alkalommal rákattintva megdöbbentem. Ez a feltétel ugyanis KÖTELEZŐEN a .NET 3.5-t keresteti! Nos ezt nekünk kell kézzel a szükséges értékre állítani (érdekesség, hogy a feltétel nem törölhetõ)!

Természetesen ezt követõen már rendben mûködött minden. Vajon miért kell ez a kapcsoló KÖTELEZŐEN és MIÉRT NEM TÖRÖLHETŐ?

Aki fejleszt és készít telepítõ csomagokat is, az ismeri azt a dilemmát, hogy vajh minden fenn van-e az épp telepítés alatt álló gépen vagy sem. Számos trükk és eljárás ismeretes az ilyen problémákra, amikbõl szép csokrot gyûjtött Aaron Stebner a blogján. Érdemes megnézni õket… 🙂

http://www.installsite.org/pages/en/msi/authoring.htm

http://www.installsite.org/pages/en/msi/comparison.htm