Hi Kevin,

We use a .wixproj to manage the files in the VS IDE and then have a
separate MSBuild script to manage building of our multi-language
installers.

We start by finding all WiX files
<!-- WiX compile target expects a list of wxs files to compile.
       We just compile all .wxs in the Installation directory-->
<ItemGroup>
    <WiXSourceFiles Include="$(InstallationDirectory)\*.wxs" />
</ItemGroup>

We have an ItemGroup of languages defined:

<!--List of all languages supported by the installer.-->
<ItemGroup>

    <Language Include="TraditionalChinese">
      <Culture>zh-TW</Culture>
      <Code>1028</Code>
      <Prefix>TW</Prefix>
    </Language>
    
    <Language Include="German">
      <Culture>de-DE</Culture>
      <Code>1031</Code>
      <Prefix>DE</Prefix>
    </Language>
...
</ItemGroup>

Then use the Candel WiX MSBuild task:

<!--Compile the WiX source files-->
<Candle
      SourceFiles="@(WiXSourceFiles)"
      OutputFile="$(InstallationDirectory)\obj\release\"
      ToolPath="$(WixToolPath)"
      DefineConstants="Build=Release;SolutionDir=E:\XXX\Source" />

Then use Light:

<!--Batch process all the languages-->
    <Light
      ObjectFiles="@(CompileObjOutput)"
      Cultures="%(Language.Culture)"
      Extensions="@(WixExtension)"
      OutputFile="$(InstallerOutputDirectory)\XXX%(Language.Prefix).msi"
      ToolPath="$(WixToolPath)" />

The key point to note in the last step is the use of %(Language...)
which causes Light to be called for each language defined in the
ItemGroup.

You can then use an <Exec> task to create transforms and embed them back
into a language neutral msi.

Kind regards,

Tim Rayment
Senior Software Engineer

Oxford Instruments plc
Halifax Road, High Wycombe, HP12 3SE, UK 
Tel: +44 (0) 1494 442255
Email: [EMAIL PROTECTED] 
www.oxford-instruments.com

 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Kevin
Richardson
Sent: 07 May 2008 05:24
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] MSBuild with multiple localizations

Greetings,

Does anyone have an example of building multi-language WiX installers  
with MSBuild? I've looked at the single-language examples, but what  
I'd like to do is have a .wixproj that builds an installer in 10+  
languages.

My current process uses the WiX tools manually through batch files,  
and basically does the following:

1) build language-neutral MSI
2) set environment variable (used in <Product> language attribute) and  
build localized MSI for each language (candle/light are called with  
the appropriate localized .wxl files)
3) generate a transform between the language neutral and localized MSIs
4) embed the transforms into the MSI (I believe that's an undocumented  
way to do a "language picker")

Can this be duplicated (or improved upon) reasonably in a .wixproj?

Thanks,

-kevin

------------------------------------------------------------------------
-
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/j
avaone
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


+++ Virus-scanned by MailControl for Oxford Instruments +++



___________________________________________________________________________ThThis
 e-mail is confidential and is for the addressee only.  Please refer to 
www.oxinst.com/email-statement for regulatory information.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to