| Index: installer/src/documentation/build_process.dox |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/installer/src/documentation/build_process.dox |
| @@ -0,0 +1,110 @@ |
| +/*! |
| + |
| +\page build_process Build Process |
| + |
| +## Tools |
| + |
| +\par WiX |
| + |
| +- WiX |
| + [WiX Toolset] (http://wixtoolset.org/) |
| + Home page. |
| +- Wix |
| + [WiX Toolset Manual Table of Contents] (http://wixtoolset.org/documentation/manual/v3/) |
| + Where you usually need to go first. |
| +- WiX |
| + [Compiler] (http://wixtoolset.org/documentation/manual/v3/overview/candle.html) |
| + A scandalously defective page about the compiler, called `candle`. |
| + You'll need to run `candle.exe -h` to see anything about its command line options. |
| +- WiX |
| + [Linker (light)] (http://wixtoolset.org/documentation/manual/v3/overview/light.html) |
| + |
| + |
| +\par Windows Installer Development Tools |
| + |
| +The Windows Installer Development Tools are a set of tools for manipulating MSI and other Windows Installer files. |
| +Microsoft has delivered these tools in different ways in past. |
| +Now they're included in the Microsoft Windows SDK, which the plugin already uses for ATL. |
| + |
| +We require the tool `Msitran.exe` for the build. |
| +The tool `Msiinfo.exe` displays the Summary Information of an installer file, |
| + which is useful for auditing the build process. |
| +It can also be used to set properties in the Summary Information, |
| + but we're not using that feature. |
| + |
| +- MSDN |
| + [Windows Installer Development Tools] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa372834%28v=vs.85%29.aspx) |
| +- MSDN |
| + [Windows SDK Components for Windows Installer Developers] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa370834%28v=vs.85%29.aspx) |
| + |
| + |
| +\par Windows Installer Examples |
| + |
| +The MSDN pages for the Windows Installer include a section of scripting examples. |
| +We're using the script `emb.vbs` from this section to embed transforms. |
| + |
| +- MSDN |
| + [Windows Installer Examples] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa372837%28v=vs.85%29.aspx) |
| + |
| + |
| +## Building the Base Installer |
| + |
| +_To write_ |
| + |
| +## Building the Localized Installer |
| + |
| +Understanding \ref localization is necessary for this section to make sense. |
| + |
| + |
| + |
| +- installsite.org |
| + [Multi-Language MSI Packages without Setup.exe Launcher] (http://www.installsite.org/pages/en/msi/articles/embeddedlang/) |
| + The original page that documents the automatic application of embedded language transforms. |
| + First written by Andreas Kerl at Microsoft Germany and then translated into English. |
| +- GeekTieGuy |
| + [Create a multi-lingual / multi-language MSI using WiX and custom build scripts] (http://www.geektieguy.com/2010/03/13/create-a-multi-lingual-multi-language-msi-using-wix-and-custom-build-scripts/) |
| + Someone else's build process using the same information. |
| + |
| +\par Generating a Language Transform |
| + |
| +The only way of generating a language transform is to use the moral equivalent of a `diff` tool. |
| +This requires two complete MSI files. |
| +One of them is the default-language MSI; the other is a single-language MSI. |
| +For reliability, we generate a transform based on the full MSI, including all the payloads, |
| + which means the single-language MSI needs all the payloads as well. |
| +This is a lot of I/O for the build, but there's no way of cutting corners here, |
| + at least not without writing a fully custom tool to generate transforms directly. |
| + |
| +The `Msitran.exe` tool is used to generate the transform. |
| +There's an equivalent WiX tool, but it has a defect that makes it unsuitable for us; |
| + it omits some elements in the generated transform. |
| + |
| +- MSDN |
| + [Msitran.exe] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa370495%28v=vs.85%29.aspx) |
| + |
| + |
| +\par Embedding Language Transforms |
| + |
| +Once we have an MST file, we need to embed it into an MSI file. |
| +The tool we're using is a Visual Basic script `emb.vbs`, provided by Microsoft. |
| +Its arguments are an MSI file, an MST file, and the name of the substorage (directory). |
| +It's a short script that utilizes the Automation interface of Windows Installer. |
| + |
| +The tool `Msidb.exe` might have been used for this purpose, |
| + but it lacks a command line option to specify the name of the substorage. |
| + |
| +Another script `WiSubStg.vbs` was used to embed transforms in the original installsite.org page. |
| +It accomplishes the same result as `emb.vbs`, though it's longer and does more. |
| +The name of this other script, though, makes a useful search term. |
| + |
| +- MSDN |
| + [Embedding Customization Transforms as Substorage] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa368351%28v=vs.85%29.aspx) |
| + Source code listing for `emb.vbs`. |
| +- MSDN |
| + [Msidb.exe] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa370083%28v=vs.85%29.aspx) |
| +- MSDN Windows Installer Scripting Examples |
| + [Manage Substorages] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa369793%28v=vs.85%29.aspx) |
| + Documentation on the script `WiSubStg.vbs`. |
| + |
| + |
| +*/ |