En av de første dagene i min nye jobb fikk jeg vite at jeg måtte installere CMS-rammeverket EPiServer 5 i forbindelse med utvikling av publiseringsløsninger. Med EPiServer følger det diverse tilleggsmoduler, deriblant en egen installasjonspakke for integrasjon mot Visual Studio. Installasjonen av CMS-delen gikk helt utmerket, men akkurat slik mine nye kolleger forutså, viste det seg at komponenten med VS-integrering skulle være noe gjenstridig.

Ved installasjon ga den kort og godt følgende beskjed: “EPiServer CMS and Visual Studio 2008 or Visual Web Developer Express 2008 must be installed.” Og det høres jo for så vidt greit ut – installasjon av en integrasjonsmodul mellom to softwarepakker gir ikke så mye mening med mindre begge pakkene er installert. Problemet var bare at jeg faktisk hadde begge installert. Litt research avdekket at dette problemet kun oppstår på Windows 7 – på Windows XP forekommer det ikke i det hele tatt.

Installasjonen klarte altså ikke å finne de pakkene som var påkrevd. Jeg vet ikke om det var EPiServer CMS eller Visual Studio den ikke fant, eller kanskje begge deler, men i og med at jeg var helt sikker på at begge var installert, ble konklusjonen at installasjonsmodulen lette etter dem på feil sted. Det er åpenbart visse forskjeller mellom installasjon på Windows 7 kontra Windows XP, uten at kompetansen min på Microsoft Installer er dyp nok til at jeg vet hva disse går ut på.

Skjermbilde fra Orca

Skjermbilde fra Orca.

Men det som er mer interessant, er hvordan man skal løse problemet. Vel, hvis testen ikke ser etter de riktige tingene, så må testen enten modifiseres eller rett og slett fjernes. MSI-filer kan redigeres ved hjelp av verktøyet Orca, så det første jeg gjorde var å installere denne, starte den og åpne den aktuelle MSI-filen (ta gjerne en backup av den først). Deretter valgte jeg tabellen CustomAction fra menyen til venstre (se bildet til høyre).

Her er det innslaget CA_Err_PrereqNotInstalled som sørger for at installasjonen avbrytes dersom man ikke finner EpiServer CMS og Visual Studio installert. Et billig triks er å høyreklikke denne og velge “Drop Row”. Hvis man så lagrer den modifiserte MSI-filen til disk og kjører den, så dropper den å sjekke etter de nevnte software-pakkene, og installasjonen går videre som normalt. I mitt tilfelle ble resultatet at VS-integrasjonen fungerer slik den skal.

Dette er et litt “skittent” hack, og jeg kan ikke ta ansvaret for eventuelle problemer som måtte oppstå dersom noen velger å prøve det ut. Jeg fikk det som sagt til å virke, men jeg garanterer ikke at det gjelder for alle.