På juldagen satte jag mig äntligen ner för att försöka lösa problemet med Emilys ritbord. Emily hade varit på mig mer än en gång så jag kände pressen...
Jag började med att studera installationen med Orca (ett program som kan öppna en Windows Installer installation och visa vad som skall installeras). Det är inte helt enkelt att se vad som görs men jag kunde i vart fall konstatera att kontrollen av ritbordet görs i en sk Custom Action i en separat DLL. M.a.o det fanns ingen direkt möjlighet att se vad som egentligen görs när installationen försöker hitta ritbordet.
Nästa steg var att köra installationen med loggning på. Men det gav bara att den funktion som försökte hitta brädet inte lyckades. Ingen mer information där alltså.
Okej, dags för plan B, som i det här fallet innebar att installera filerna manuellt. Detta kan göras på två sätt. Det ena är genom att först göra en Admin-installation. Då packas alla filer upp under en mapp som man själv bestämmer. Sedan kan man kopiera dessa till sina respektive platser. Nu räcker det oftast inte med att kopiera filerna, speciellt inte när det är hårdvara involverat. Så jag behövde också ta reda på vad som skrivs i registret, vilket Orca kan hjälpa till med.
Det andra sättet att installera manuellt är genom att först installera på en annan dator och sedan kopiera installationen till den första datorn. Det kräver förstås att det finns en annan dator som det går att installera på.
Jag valde det andra alternativet eftersom jag har en dator med just en amerikansk version av Windows på, min jobbdator. Så jag installerade programmet på jobbdatorn och det fungerade. Det gick även att starta ritbordet och rita med det. Nästa steg var att kopiera filerna från "Program Files"-mappen till hemdatorn. Jag valde att kopiera mappen som den var och behålla hela sökvägen intakt, på så vis skulle jag inte behöva redigera alla länkar till filerna (trodde jag i varje fall).
Sedan skannade jag igenom registret för att hitta alla ställen där ordet dacs fanns. Det var inte så många, förutom allt som hade skrivits som hade med installationen att göra vilket jag lugnt kunde ignorera. Jag flyttade över allt till hemdatorn och gjorde "installationen". Jag provade att plugga in brädet, men inget hände, annat än att hela datorn verkade frysa. Nåja, jag letade lite på datorn och hittade en loggfil där ett felmeddelande med en "stack trace" (som också visade att programmet var skrivet för .Net) fanns. Det felmeddelandet visade sig, efter lite sökningar på internet, betyda att programmet inte kunde hitta den fil som den skulle visa när programmet startade upp. Detta innebar att sökvägarna ändå var fel på något sätt.
Sökvägarna i registret stämde det hade jag kollat. Men hade jag missat att kopiera något från jobbdatorn. Tillbaka och skanna jobbdatorn igen, men inget nytt där.
Okej, dags att ta i med det tunga artilleriet, jag drog igång Reflector som kan visa programkoden i en assembly som är skriven i .Net. Den visade att när programmet satte ihop sökvägen så utgick den ifrån det lokaliserade namnet av "Program Files", d.v.s. "Program" på svenska. Så jag fick flytta filerna till Program-mappen och sedan ändra alla referenser i registret så att de pekade på den nya platsen.
Och nu fungerade det! Gissa om Emily blev glad!
Prenumerera på:
Kommentarer till inlägget (Atom)
Inga kommentarer:
Skicka en kommentar