windows - WiX-- Check for en tidligere installation

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en gammel applikation, der er installeret direkte til brugeren 'sc: drev, i en mappe (som c: \ MyApp). Nasty ting. Problemet er, at brugeren kan angive at have en anden installation på en anden drev (som e: \ MyApp), og de kan have to forskellige versioner af applikationen installeret på én gang i begge mapper. De kan også beslutte at installere appen andetsteds i katalogtræet, men det er de to mest almindelige steder.


Jeg skrev ikke denne ordning. Det gør babyen Jesus gråt, så vidt jeg er bekymret for.


Jeg skal skrive et installationsprogram til at tilføje et modul til denne ordning, og brugeren skal kunne vælge, hvilken installation de vil installere modulet på. Jeg troede, at jeg ville prøve dette i WiX.


Hvordan gør jeg det her?


Jeg skulle lave en katalog søgning som


<Property Id="MyAppInstallationSearch">
  <DirectorySearch Id="MyAppDirectory" Path="C:MyApp">
  </DirectorySearch>
</Property>


og så:


<Directory Id="TARGETDIR" Name="MyAppInstallationSearch">
    <Directory Id="INSTALLLOCATION" Name="AdditionalTools">
    </Directory>
</Directory>


at have en installationsplacering.


Så hvordan gør jeg:



  1. Gør den søgning relativ, ikke absolut? (dokumentationen angiver, at dette kan gøres, jeg ser bare ikke).

  2. Hvis brugeren har flere steder, giver dem et valg af, hvilken installation der skal bruges?


Bedste reference



  1. Det vil være en relativ betydning, AdditionalTools vil være under den mappe, der findes af MyAppInstallationSearch.

  2. Dette indebærer oprettelse af brugergrænseflade, hvilket ikke er en nem ting i Wix, der er produkter, som kan skabe Wix-output eller WixEdit. Du skal søge i biblioteket på alle mulige steder og vise brugerens radioknapper (hver afgrænset til et søgeresultat) til valgte, hvor du skal installere den nye prodcut.


Andre referencer 1


Jeg var nødt til at implementere det samme, og jeg brugte en ekstern brugergrænseflade til at tilpasse installationsprocessen fuldstændigt. Jeg viser også en guiden side, hvor brugeren kan vælge den version, han ønsker at opgradere fra. Men vær opmærksom på at dette ikke er noget du kan gøre inden for en dag eller to. [3]


Jeg ved ikke, hvilket programmeringssprog du bruger, men hvis du vil bruge .NET, kan du bruge Development Tools Foundation med Wix3. Bibliotekerne kan findes i SDK-mappen på din Wix-installation (du skal primært bruge Microsoft. Deployment.WindowsInstaller.dll), dokumentation findes i DTF.chm i doc-mappen. Du skal også have en bootstrapper til at installere .NET-rammen.


Du kan også vente til Wix 3.5, som vil omfatte Burn, en boostrapper og ekstern UI-håndterer, du nemt kan tilpasse.


HTH