Wix større oppgradering

stemmer
11

Hvordan bruker jeg Wix å hindre overskriver en config fil under en større oppgradering ?

Jeg vil at filen som skal installeres på den innledende installere, fjernet på avinstallere, og forblir uendret på en 'større oppgradering'.

Takk

Publisert på 28/01/2009 klokken 15:46
kilden bruker
På andre språk...                            


3 svar

stemmer
17

Den mest rett frem måte ville være å planlegge din RemoveExistingProducts etter InstallExecute eller InstallFinalize. På den måten konfigurasjonsfilen er ikke fjernet og deretter installert på nytt (for eksempel hvis du planlegger før InstallInitialize). Selvfølgelig, planlegging RemoveExistingProduct så sent betyr at du må være veldig forsiktig med komponenten reglene.

Min personlige favoritt er å behandle konfigurasjonen som "brukerdata" og ikke har installtouch det hele tatt. Du sender mislighold med søknaden, men noen endringer er gjort av brukeren i deres private brukerprofilen. Får deg ut av alle slags ekle migrasjon problemer som bare ikke løses godt under installasjonen.

Svarte 28/01/2009 kl. 16:02
kilden bruker

stemmer
0

Du kan bruke UPGRADINGPRODUCTCODE eiendommen for å sjekke om du oppgraderer. Vi bruker dette for å finne ut om vi skal kjøre vår 'rydde opp' egendefinert handling:

<Custom Action="" After="CleanUpFiles">
  <![CDATA[REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE]]>
</Custom>

Jeg er enig med Rob, ved at config er brukerdata som er lagret i sine AppData mapper, og aldri skapt av MSI. I stedet er det satt gjøre en standardverdi (som vi lagrer som standard config i programmene filer), og kopiert over av programmet selv. Men vi ønsker ikke å la disse tingene rot brukerens maskin hvis de ønsker å avinstallere produktet vårt, så vi laget en CleanUpFiles som søker HD for noe søppel liggende igjen.

Svarte 28/01/2009 kl. 16:24
kilden bruker

stemmer
4

Har du noensinne vil ha det overskrevet? Om ikke i tilfeller som dette tildele jeg config filer til sine egne komponenter og merke dem som overskriver aldri . På denne måten oppgraderinger vil ikke overskrive filen, men avinstallerer vil fjerne den.

f.eks

<Component Id="myComp" Guid="myguid" NeverOverwrite="yes">
Svarte 28/01/2009 kl. 16:32
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more