| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 /*! | 
|  | 2 | 
|  | 3 \page build_process Build Process | 
|  | 4 | 
|  | 5 ## Tools | 
|  | 6 | 
|  | 7 \par WiX | 
|  | 8 | 
|  | 9 - WiX | 
|  | 10   [WiX Toolset] (http://wixtoolset.org/) | 
|  | 11   Home page. | 
|  | 12 - Wix | 
|  | 13   [WiX Toolset Manual Table of Contents] (http://wixtoolset.org/documentation/ma
     nual/v3/) | 
|  | 14   Where you usually need to go first. | 
|  | 15 - WiX | 
|  | 16   [Compiler] (http://wixtoolset.org/documentation/manual/v3/overview/candle.html
     ) | 
|  | 17   A scandalously defective page about the compiler, called `candle`. | 
|  | 18   You'll need to run `candle.exe -h` to see anything about its command line opti
     ons. | 
|  | 19 - WiX | 
|  | 20   [Linker (light)] (http://wixtoolset.org/documentation/manual/v3/overview/light
     .html) | 
|  | 21 | 
|  | 22 | 
|  | 23 \par Windows Installer Development Tools | 
|  | 24 | 
|  | 25 The Windows Installer Development Tools are a set of tools for manipulating MSI 
     and other Windows Installer files. | 
|  | 26 Microsoft has delivered these tools in different ways in past. | 
|  | 27 Now they're included in the Microsoft Windows SDK, which the plugin already uses
      for ATL. | 
|  | 28 | 
|  | 29 We require the tool `Msitran.exe` for the build. | 
|  | 30 The tool `Msiinfo.exe` displays the Summary Information of an installer file, | 
|  | 31   which is useful for auditing the build process. | 
|  | 32 It can also be used to set properties in the Summary Information, | 
|  | 33   but we're not using that feature. | 
|  | 34 | 
|  | 35 - MSDN | 
|  | 36   [Windows Installer Development Tools] (http://msdn.microsoft.com/en-us/library
     /windows/desktop/aa372834%28v=vs.85%29.aspx) | 
|  | 37 - MSDN | 
|  | 38   [Windows SDK Components for Windows Installer Developers] (http://msdn.microso
     ft.com/en-us/library/windows/desktop/aa370834%28v=vs.85%29.aspx) | 
|  | 39 | 
|  | 40 | 
|  | 41 \par Windows Installer Examples | 
|  | 42 | 
|  | 43 The MSDN pages for the Windows Installer include a section of scripting examples
     . | 
|  | 44 We're using the script `emb.vbs` from this section to embed transforms. | 
|  | 45 | 
|  | 46 - MSDN | 
|  | 47   [Windows Installer Examples] (http://msdn.microsoft.com/en-us/library/windows/
     desktop/aa372837%28v=vs.85%29.aspx) | 
|  | 48 | 
|  | 49 | 
|  | 50 ## Building the Base Installer | 
|  | 51 | 
|  | 52 _To write_ | 
|  | 53 | 
|  | 54 ## Building the Localized Installer | 
|  | 55 | 
|  | 56 Understanding \ref localization is necessary for this section to make sense. | 
|  | 57 | 
|  | 58 | 
|  | 59 | 
|  | 60 - installsite.org | 
|  | 61   [Multi-Language MSI Packages without Setup.exe Launcher] (http://www.installsi
     te.org/pages/en/msi/articles/embeddedlang/) | 
|  | 62   The original page that documents the automatic application of embedded languag
     e transforms. | 
|  | 63   First written by Andreas Kerl at Microsoft Germany and then translated into En
     glish. | 
|  | 64 - GeekTieGuy | 
|  | 65   [Create a multi-lingual / multi-language MSI using WiX and custom build script
     s] (http://www.geektieguy.com/2010/03/13/create-a-multi-lingual-multi-language-m
     si-using-wix-and-custom-build-scripts/) | 
|  | 66   Someone else's build process using the same information. | 
|  | 67 | 
|  | 68 \par Generating a Language Transform | 
|  | 69 | 
|  | 70 The only way of generating a language transform is to use the moral equivalent o
     f a `diff` tool. | 
|  | 71 This requires two complete MSI files. | 
|  | 72 One of them is the default-language MSI; the other is a single-language MSI. | 
|  | 73 For reliability, we generate a transform based on the full MSI, including all th
     e payloads, | 
|  | 74   which means the single-language MSI needs all the payloads as well. | 
|  | 75 This is a lot of I/O for the build, but there's no way of cutting corners here, | 
|  | 76   at least not without writing a fully custom tool to generate transforms direct
     ly. | 
|  | 77 | 
|  | 78 The `Msitran.exe` tool is used to generate the transform. | 
|  | 79 There's an equivalent WiX tool, but it has a defect that makes it unsuitable for
      us; | 
|  | 80   it omits some elements in the generated transform. | 
|  | 81 | 
|  | 82 - MSDN | 
|  | 83   [Msitran.exe] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa37049
     5%28v=vs.85%29.aspx) | 
|  | 84 | 
|  | 85 | 
|  | 86 \par Embedding Language Transforms | 
|  | 87 | 
|  | 88 Once we have an MST file, we need to embed it into an MSI file. | 
|  | 89 The tool we're using is a Visual Basic script `emb.vbs`, provided by Microsoft. | 
|  | 90 Its arguments are an MSI file, an MST file, and the name of the substorage (dire
     ctory). | 
|  | 91 It's a short script that utilizes the Automation interface of Windows Installer. | 
|  | 92 | 
|  | 93 The tool `Msidb.exe` might have been used for this purpose, | 
|  | 94   but it lacks a command line option to specify the name of the substorage. | 
|  | 95 | 
|  | 96 Another script `WiSubStg.vbs` was used to embed transforms in the original insta
     llsite.org page. | 
|  | 97 It accomplishes the same result as `emb.vbs`, though it's longer and does more. | 
|  | 98 The name of this other script, though, makes a useful search term. | 
|  | 99 | 
|  | 100 - MSDN | 
|  | 101   [Embedding Customization Transforms as Substorage] (http://msdn.microsoft.com/
     en-us/library/windows/desktop/aa368351%28v=vs.85%29.aspx) | 
|  | 102   Source code listing for `emb.vbs`. | 
|  | 103 - MSDN | 
|  | 104   [Msidb.exe] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa370083%
     28v=vs.85%29.aspx) | 
|  | 105 - MSDN Windows Installer Scripting Examples | 
|  | 106   [Manage Substorages] (http://msdn.microsoft.com/en-us/library/windows/desktop/
     aa369793%28v=vs.85%29.aspx) | 
|  | 107   Documentation on the script `WiSubStg.vbs`. | 
|  | 108 | 
|  | 109 | 
|  | 110 */ | 
| OLD | NEW | 
|---|