WiX (Windows Installer Xml), Opret universelle variabler

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg studerede for WiX i flere dage gennem nogle online tutorial. Jeg så tre sager for at skabe nogle variabler



  1. <? define Variable = "value" ?> og brug derefter værdien som $(var.Variable)

  2. Opret en lokaliseringsfil. Indtast indhold som <String Id="Variable">Value</String> og brug derefter værdien som !(loc.Variable)

  3. Opret en inklusiv fil. Indtast indhold som <Property Id="VARIABLE" Value="value" /> og derefter medtag filen, brug egenskaben i Fragment som [VARIABLE]



Jeg ved, at lokaliseringsfilen hovedsagelig bruges til forskellige lokaliteter. Men jeg ved ikke, hvornår vi skal bruge hver enkelt sag. Kan nogen hjælpe med at forklare?

Bedste reference


Jeg har ikke brugt disse konstruktioner så meget. Men jeg tror, ​​at Bob Arnson (WiX-udvikler) forklarer dette godt i denne blogindlæg om lokalisering (forklaringen er god, men jeg klarer stadig at forvirre mig selv - kulstoffejl). [17]


Væsentlige :



  • Preprocessorvariabler - $(var.Variable) - løses af WiX preprocessor - det sker før kompilering (Candle.exe).

  • Lokaliseringsvariabler - !(loc.LanguageLcid) - løses ved linketid (Light.exe). Sammenkoblingsprocessen kan spytte flere MSI-filer ud på forskellige sprog. Derfor er lokalisering en link-time proces.


    • Se link 3 nedenfor for en lokaliseringsprøve. Når du lokker, lokaliserer du de fleste eller alle felter. I eksemplet nedenfor lokaliserer jeg ikke version og upgrade code - de forbliver de samme for alle MSI-filer.

    • Du skal i hvert tilfælde afgøre, hvad der skal lokaliseres. Skal navnet Manufacturer lokaliseres? Måske hvis du vil have asiatiske tegn til asiatiske opsætninger og et tilsvarende latinske tegnnavn ellers?


  • Inkluder filer er simpelthen inkluderet i WiX-kilden før kompilering. Det er som at inkludere en header-fil i C ++. Dette gør det til en præprocessorkonstruktion. Se link 2 nedenfor for en diskussion om brugen af ​​inklusiv filer.

  • UPDATE : Der er også Burn Engine Variables - hvis du laver setup.exe launchers med WiX.



Jeg er sikker på, at der også er andre tekniske grunde. Rob eller Bob ville have brug for at belyse. Der kan også være forskelle i WiX 4 end det jeg er vant til i WiX 3 - og der kunne være planlagte ændringer, som jeg ikke er opmærksom på. [18] [20]]] [21]





Nogle links :



  1. Er det muligt at videregive variabel til WIX lokaliseringsfil? (for nem hentning)

  2. Wix Installer: Indstilling af komponentbetingelsesegenskab, når du laver en MSIEXEC admininstallation på kommandolinjen (en lang beskrivelse af præprocessorkonstruktioner i forhold til andre nyttige konstruktioner for at skabe smag af opsætninger)

  3. Wix værktøjssæt licensaftale multisprogsproblem (ved hjælp af lokalisering)

  4. Wix-streng med tegn, der ikke er tilgængelige i databasens kodeside, selvom kodesiden er indstillet