GithubHelp home page GithubHelp logo

wixxmlgenerator's Introduction

Wix XML Generator

Build Status

Wix Toolset is a very popular tool to generate installers for .NET applications. It is fairly easy to setup, however, it requires you to add every single file and directory as relative paths into its configuration file.This process brings up some issues.

  • It is very tiresome to model your file and directory structure if you have a very big project with hundereds of files.
  • If your application is changing rapidly, you need to track down every removed/moved/added file/directory and change your file, folder and component structure accordingly.
  • If you wish to ignore certain file types, directories or even a specific file, you need to remove it from the configuration and track it manually through the versions.

Wix Toolset provides a way to harvest files with heat.exe, and you can exclude files and folders with xlst transforms. However, in my opinion,that approach is not very developer friendly.

Wix XML Generator aims ease this process by automating the process generating the file and directory structure. It is a command line tool for generating XML portion of file, directory and component structure of the Product.wxs file. To control which files are going to be in the setup file, it uses a .wixignore file similar to GitHub's .gitignore file, to ignore files and folders.

Installation

  1. Download and unzip the latest version of Wix XML Generator into a folder of your choosing.
  2. Add this folder path into the PATH environment variable.

Usage

Wix XML Generator has 3 commands:

  1. -help: Displays the help text.
  2. -version: Displays the version information.
  3. -generate: Generates the XML based on the arguments.

Generate command arguments are:

  1. -sourceDir: This is the root folder where the tool will build the folders, files and components from.
  2. -wxsPath: This is the file path of the Product.wxs
  3. -projectName: This is the INSTALLDIR of the setup.
  4. -outputFile: This file contains the XML that is generated by the tool. While the file will have XML formatted text, there is no restriction on the file extension. It can be anything.

The basic usage of the tool is as follows:

WixXmlGenerator.exe -generate -sourceDir <SOURCE_DIRECTORY_PATH> -wxsPath <WXS_FILE_PATH> -outputFile <OUTPUT_FILE_PATH> -projectName <PROJECT_NAME>

The .wixignore File

By using a .wixignore file, you can exclude:

  • Specific files
  • Folders
  • Folders in specific folder structures.
  • Files with specific extensions
  • Files with specific extensions in specific folders

Below is an example .wixignore file:

# This is a comment and will be ignored

# ignore PDB files everywhere
*.xml

# ignore XML files in root
/*.xml

# ignore XML files in Directory_1 folder
/Directory_1/*.xml

# ignore XML files in Directory_1/Directory_2 folder path
/Directory_1/Directory_2/*.xml

# ignore Directory_1 folder under root
/Directory_1/

# ignore Resources Directory_1/Directory_2 folder path
/Directory_1/Directory_2/

# ignore a specific file path
C:\somefile.log

Example

Below is an example of how the Project Markdown setup directory and file structure was generated. Keep in mind there were some edits afterwards to make it more customized to the project, however the template is the same.

The command:

WixXmlGenerator.exe -generate -sourceDir "C:\Users\Murat\Documents\Open Source Development\ProjectMarkdown\ProjectMarkdown\bin\x86\Release" -wxsPath "C:\Users\Murat\Documents\Open Source Development\ProjectMarkdown\ProjectMarkdown.Setup\Product.wxs" -outputFile "C:\WixXMLTool\projectmarkdown.xml" -projectName "ProjectMarkdown"

with the .wixignore file of:

# ignore PDB files everywhere
*.pdb
# ignore XML files in root
/*.xml
# ignore directories
/Resources/
/de/
/es/
/fr/
/it/
/ja/
/ko/
/nl/
/ru/
/zh-Hans/
/zh-Hant/

generates:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <!-- Folder Structure -->
  <Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
      <Directory Id="INSTALLDIR" Name="ProjectMarkdown">
        <Directory Id="ConfigurationFolderId" Name="Configuration" />
        <Directory Id="DocumentationFolderId" Name="Documentation" />
        <Directory Id="enFolderId" Name="en" />
        <Directory Id="localesFolderId" Name="locales" />
        <Directory Id="StylesFolderId" Name="Styles" />
      </Directory>
    </Directory>
    <Directory Id="ProgramMenuFolder">
      <Directory Id="MyShortcutsDir" Name="ProjectMarkdown" />
    </Directory>
  </Directory>
  <!-- Files -->
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="cef.pak">
      <File Id="cef.pak" Name="cef.pak" Source="..\ProjectMarkdown\bin\x86\Release\cef.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="CefSharp.BrowserSubprocess.Core.dll">
      <File Id="CefSharp.BrowserSubprocess.Core.dll" Name="CefSharp.BrowserSubprocess.Core.dll" Source="..\ProjectMarkdown\bin\x86\Release\CefSharp.BrowserSubprocess.Core.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="CefSharp.BrowserSubprocess.exe">
      <File Id="CefSharp.BrowserSubprocess.exe" Name="CefSharp.BrowserSubprocess.exe" Source="..\ProjectMarkdown\bin\x86\Release\CefSharp.BrowserSubprocess.exe" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="CefSharp.Core.dll">
      <File Id="CefSharp.Core.dll" Name="CefSharp.Core.dll" Source="..\ProjectMarkdown\bin\x86\Release\CefSharp.Core.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="CefSharp.dll">
      <File Id="CefSharp.dll" Name="CefSharp.dll" Source="..\ProjectMarkdown\bin\x86\Release\CefSharp.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="CefSharp.Wpf.dll">
      <File Id="CefSharp.Wpf.dll" Name="CefSharp.Wpf.dll" Source="..\ProjectMarkdown\bin\x86\Release\CefSharp.Wpf.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="cef_100_percent.pak">
      <File Id="cef_100_percent.pak" Name="cef_100_percent.pak" Source="..\ProjectMarkdown\bin\x86\Release\cef_100_percent.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="cef_200_percent.pak">
      <File Id="cef_200_percent.pak" Name="cef_200_percent.pak" Source="..\ProjectMarkdown\bin\x86\Release\cef_200_percent.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="cef_extensions.pak">
      <File Id="cef_extensions.pak" Name="cef_extensions.pak" Source="..\ProjectMarkdown\bin\x86\Release\cef_extensions.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="chrome_elf.dll">
      <File Id="chrome_elf.dll" Name="chrome_elf.dll" Source="..\ProjectMarkdown\bin\x86\Release\chrome_elf.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="ClassUtils.dll">
      <File Id="ClassUtils.dll" Name="ClassUtils.dll" Source="..\ProjectMarkdown\bin\x86\Release\ClassUtils.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="d3dcompiler_47.dll">
      <File Id="d3dcompiler_47.dll" Name="d3dcompiler_47.dll" Source="..\ProjectMarkdown\bin\x86\Release\d3dcompiler_47.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="devtools_resources.pak">
      <File Id="devtools_resources.pak" Name="devtools_resources.pak" Source="..\ProjectMarkdown\bin\x86\Release\devtools_resources.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="Dragablz.dll">
      <File Id="Dragablz.dll" Name="Dragablz.dll" Source="..\ProjectMarkdown\bin\x86\Release\Dragablz.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="FastColoredTextBox.dll">
      <File Id="FastColoredTextBox.dll" Name="FastColoredTextBox.dll" Source="..\ProjectMarkdown\bin\x86\Release\FastColoredTextBox.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="icudtl.dat">
      <File Id="icudtl.dat" Name="icudtl.dat" Source="..\ProjectMarkdown\bin\x86\Release\icudtl.dat" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="IOUtils.dll">
      <File Id="IOUtils.dll" Name="IOUtils.dll" Source="..\ProjectMarkdown\bin\x86\Release\IOUtils.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="libcef.dll">
      <File Id="libcef.dll" Name="libcef.dll" Source="..\ProjectMarkdown\bin\x86\Release\libcef.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="libEGL.dll">
      <File Id="libEGL.dll" Name="libEGL.dll" Source="..\ProjectMarkdown\bin\x86\Release\libEGL.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="libGLESv2.dll">
      <File Id="libGLESv2.dll" Name="libGLESv2.dll" Source="..\ProjectMarkdown\bin\x86\Release\libGLESv2.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="License.rtf">
      <File Id="License.rtf" Name="License.rtf" Source="..\ProjectMarkdown\bin\x86\Release\License.rtf" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="License.txt">
      <File Id="License.txt" Name="License.txt" Source="..\ProjectMarkdown\bin\x86\Release\License.txt" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="LogUtils.dll">
      <File Id="LogUtils.dll" Name="LogUtils.dll" Source="..\ProjectMarkdown\bin\x86\Release\LogUtils.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="MaterialDesignColors.dll">
      <File Id="MaterialDesignColors.dll" Name="MaterialDesignColors.dll" Source="..\ProjectMarkdown\bin\x86\Release\MaterialDesignColors.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="MaterialDesignThemes.Wpf.dll">
      <File Id="MaterialDesignThemes.Wpf.dll" Name="MaterialDesignThemes.Wpf.dll" Source="..\ProjectMarkdown\bin\x86\Release\MaterialDesignThemes.Wpf.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="MathUtils.dll">
      <File Id="MathUtils.dll" Name="MathUtils.dll" Source="..\ProjectMarkdown\bin\x86\Release\MathUtils.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="Microsoft.Expression.Interactions.dll">
      <File Id="Microsoft.Expression.Interactions.dll" Name="Microsoft.Expression.Interactions.dll" Source="..\ProjectMarkdown\bin\x86\Release\Microsoft.Expression.Interactions.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="natives_blob.bin">
      <File Id="natives_blob.bin" Name="natives_blob.bin" Source="..\ProjectMarkdown\bin\x86\Release\natives_blob.bin" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="pdfium.dll">
      <File Id="pdfium.dll" Name="pdfium.dll" Source="..\ProjectMarkdown\bin\x86\Release\pdfium.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="PdfiumViewer.dll">
      <File Id="PdfiumViewer.dll" Name="PdfiumViewer.dll" Source="..\ProjectMarkdown\bin\x86\Release\PdfiumViewer.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="ProjectMarkdown.exe">
      <File Id="ProjectMarkdown.exe" Name="ProjectMarkdown.exe" Source="..\ProjectMarkdown\bin\x86\Release\ProjectMarkdown.exe" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="ProjectMarkdown.exe.config">
      <File Id="ProjectMarkdown.exe.config" Name="ProjectMarkdown.exe.config" Source="..\ProjectMarkdown\bin\x86\Release\ProjectMarkdown.exe.config" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="ProjectMarkdown.HtmlToPdfConverter.dll">
      <File Id="ProjectMarkdown.HtmlToPdfConverter.dll" Name="ProjectMarkdown.HtmlToPdfConverter.dll" Source="..\ProjectMarkdown\bin\x86\Release\ProjectMarkdown.HtmlToPdfConverter.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="ProjectMarkdown.MarkdownLibrary.dll">
      <File Id="ProjectMarkdown.MarkdownLibrary.dll" Name="ProjectMarkdown.MarkdownLibrary.dll" Source="..\ProjectMarkdown\bin\x86\Release\ProjectMarkdown.MarkdownLibrary.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="snapshot_blob.bin">
      <File Id="snapshot_blob.bin" Name="snapshot_blob.bin" Source="..\ProjectMarkdown\bin\x86\Release\snapshot_blob.bin" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="StringUtils.dll">
      <File Id="StringUtils.dll" Name="StringUtils.dll" Source="..\ProjectMarkdown\bin\x86\Release\StringUtils.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="System.Windows.Interactivity.dll">
      <File Id="System.Windows.Interactivity.dll" Name="System.Windows.Interactivity.dll" Source="..\ProjectMarkdown\bin\x86\Release\System.Windows.Interactivity.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="TuesPechkin.dll">
      <File Id="TuesPechkin.dll" Name="TuesPechkin.dll" Source="..\ProjectMarkdown\bin\x86\Release\TuesPechkin.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="TuesPechkin.Wkhtmltox.AnyCPU.dll">
      <File Id="TuesPechkin.Wkhtmltox.AnyCPU.dll" Name="TuesPechkin.Wkhtmltox.AnyCPU.dll" Source="..\ProjectMarkdown\bin\x86\Release\TuesPechkin.Wkhtmltox.AnyCPU.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="widevinecdmadapter.dll">
      <File Id="widevinecdmadapter.dll" Name="widevinecdmadapter.dll" Source="..\ProjectMarkdown\bin\x86\Release\widevinecdmadapter.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="WPFUtils.dll">
      <File Id="WPFUtils.dll" Name="WPFUtils.dll" Source="..\ProjectMarkdown\bin\x86\Release\WPFUtils.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="ConfigurationFolderId">
    <Component Id="Configuration_MarkdownSyntaxHighlighting.xml">
      <File Id="MarkdownSyntaxHighlighting.xml" Name="MarkdownSyntaxHighlighting.xml" Source="..\ProjectMarkdown\bin\x86\Release\Configuration\MarkdownSyntaxHighlighting.xml" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="DocumentationFolderId">
    <Component Id="Documentation_Project Markdown User Guide.pdf">
      <File Id="Project Markdown User Guide.pdf" Name="Project Markdown User Guide.pdf" Source="..\ProjectMarkdown\bin\x86\Release\Documentation\Project Markdown User Guide.pdf" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="enFolderId">
    <Component Id="en_Microsoft.Expression.Interactions.resources.dll">
      <File Id="Microsoft.Expression.Interactions.resources.dll" Name="Microsoft.Expression.Interactions.resources.dll" Source="..\ProjectMarkdown\bin\x86\Release\en\Microsoft.Expression.Interactions.resources.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="enFolderId">
    <Component Id="en_System.Windows.Interactivity.resources.dll">
      <File Id="System.Windows.Interactivity.resources.dll" Name="System.Windows.Interactivity.resources.dll" Source="..\ProjectMarkdown\bin\x86\Release\en\System.Windows.Interactivity.resources.dll" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_am.pak">
      <File Id="am.pak" Name="am.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\am.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ar.pak">
      <File Id="ar.pak" Name="ar.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ar.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_bg.pak">
      <File Id="bg.pak" Name="bg.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\bg.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_bn.pak">
      <File Id="bn.pak" Name="bn.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\bn.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ca.pak">
      <File Id="ca.pak" Name="ca.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ca.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_cs.pak">
      <File Id="cs.pak" Name="cs.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\cs.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_da.pak">
      <File Id="da.pak" Name="da.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\da.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_de.pak">
      <File Id="de.pak" Name="de.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\de.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_el.pak">
      <File Id="el.pak" Name="el.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\el.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_en_GB.pak">
      <File Id="en_GB.pak" Name="en-GB.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\en-GB.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_en_US.pak">
      <File Id="en_US.pak" Name="en-US.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\en-US.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_es_419.pak">
      <File Id="es_419.pak" Name="es-419.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\es-419.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_es.pak">
      <File Id="es.pak" Name="es.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\es.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_et.pak">
      <File Id="et.pak" Name="et.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\et.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_fa.pak">
      <File Id="fa.pak" Name="fa.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\fa.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_fi.pak">
      <File Id="fi.pak" Name="fi.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\fi.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_fil.pak">
      <File Id="fil.pak" Name="fil.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\fil.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_fr.pak">
      <File Id="fr.pak" Name="fr.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\fr.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_gu.pak">
      <File Id="gu.pak" Name="gu.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\gu.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_he.pak">
      <File Id="he.pak" Name="he.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\he.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_hi.pak">
      <File Id="hi.pak" Name="hi.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\hi.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_hr.pak">
      <File Id="hr.pak" Name="hr.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\hr.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_hu.pak">
      <File Id="hu.pak" Name="hu.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\hu.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_id.pak">
      <File Id="id.pak" Name="id.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\id.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_it.pak">
      <File Id="it.pak" Name="it.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\it.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ja.pak">
      <File Id="ja.pak" Name="ja.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ja.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_kn.pak">
      <File Id="kn.pak" Name="kn.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\kn.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ko.pak">
      <File Id="ko.pak" Name="ko.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ko.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_lt.pak">
      <File Id="lt.pak" Name="lt.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\lt.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_lv.pak">
      <File Id="lv.pak" Name="lv.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\lv.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ml.pak">
      <File Id="ml.pak" Name="ml.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ml.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_mr.pak">
      <File Id="mr.pak" Name="mr.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\mr.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ms.pak">
      <File Id="ms.pak" Name="ms.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ms.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_nb.pak">
      <File Id="nb.pak" Name="nb.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\nb.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_nl.pak">
      <File Id="nl.pak" Name="nl.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\nl.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_pl.pak">
      <File Id="pl.pak" Name="pl.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\pl.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_pt_BR.pak">
      <File Id="pt_BR.pak" Name="pt-BR.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\pt-BR.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_pt_PT.pak">
      <File Id="pt_PT.pak" Name="pt-PT.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\pt-PT.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ro.pak">
      <File Id="ro.pak" Name="ro.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ro.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ru.pak">
      <File Id="ru.pak" Name="ru.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ru.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_sk.pak">
      <File Id="sk.pak" Name="sk.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\sk.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_sl.pak">
      <File Id="sl.pak" Name="sl.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\sl.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_sr.pak">
      <File Id="sr.pak" Name="sr.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\sr.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_sv.pak">
      <File Id="sv.pak" Name="sv.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\sv.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_sw.pak">
      <File Id="sw.pak" Name="sw.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\sw.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_ta.pak">
      <File Id="ta.pak" Name="ta.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\ta.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_te.pak">
      <File Id="te.pak" Name="te.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\te.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_th.pak">
      <File Id="th.pak" Name="th.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\th.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_tr.pak">
      <File Id="tr.pak" Name="tr.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\tr.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_uk.pak">
      <File Id="uk.pak" Name="uk.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\uk.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_vi.pak">
      <File Id="vi.pak" Name="vi.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\vi.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_zh_CN.pak">
      <File Id="zh_CN.pak" Name="zh-CN.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\zh-CN.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="localesFolderId">
    <Component Id="locales_zh_TW.pak">
      <File Id="zh_TW.pak" Name="zh-TW.pak" Source="..\ProjectMarkdown\bin\x86\Release\locales\zh-TW.pak" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <DirectoryRef Id="StylesFolderId">
    <Component Id="Styles_github_markdown.css">
      <File Id="github_markdown.css" Name="github-markdown.css" Source="..\ProjectMarkdown\bin\x86\Release\Styles\github-markdown.css" KeyPath="yes" />
    </Component>
  </DirectoryRef>
  <!-- Application Components -->
  <Feature Id="ProductFeature" Title="ProjectMarkdown" Level="1">
    <ComponentRef Id="cef.pak" />
    <ComponentRef Id="CefSharp.BrowserSubprocess.Core.dll" />
    <ComponentRef Id="CefSharp.BrowserSubprocess.exe" />
    <ComponentRef Id="CefSharp.Core.dll" />
    <ComponentRef Id="CefSharp.dll" />
    <ComponentRef Id="CefSharp.Wpf.dll" />
    <ComponentRef Id="cef_100_percent.pak" />
    <ComponentRef Id="cef_200_percent.pak" />
    <ComponentRef Id="cef_extensions.pak" />
    <ComponentRef Id="chrome_elf.dll" />
    <ComponentRef Id="ClassUtils.dll" />
    <ComponentRef Id="d3dcompiler_47.dll" />
    <ComponentRef Id="devtools_resources.pak" />
    <ComponentRef Id="Dragablz.dll" />
    <ComponentRef Id="FastColoredTextBox.dll" />
    <ComponentRef Id="icudtl.dat" />
    <ComponentRef Id="IOUtils.dll" />
    <ComponentRef Id="libcef.dll" />
    <ComponentRef Id="libEGL.dll" />
    <ComponentRef Id="libGLESv2.dll" />
    <ComponentRef Id="License.rtf" />
    <ComponentRef Id="License.txt" />
    <ComponentRef Id="LogUtils.dll" />
    <ComponentRef Id="MaterialDesignColors.dll" />
    <ComponentRef Id="MaterialDesignThemes.Wpf.dll" />
    <ComponentRef Id="MathUtils.dll" />
    <ComponentRef Id="Microsoft.Expression.Interactions.dll" />
    <ComponentRef Id="natives_blob.bin" />
    <ComponentRef Id="pdfium.dll" />
    <ComponentRef Id="PdfiumViewer.dll" />
    <ComponentRef Id="ProjectMarkdown.exe" />
    <ComponentRef Id="ProjectMarkdown.exe.config" />
    <ComponentRef Id="ProjectMarkdown.HtmlToPdfConverter.dll" />
    <ComponentRef Id="ProjectMarkdown.MarkdownLibrary.dll" />
    <ComponentRef Id="snapshot_blob.bin" />
    <ComponentRef Id="StringUtils.dll" />
    <ComponentRef Id="System.Windows.Interactivity.dll" />
    <ComponentRef Id="TuesPechkin.dll" />
    <ComponentRef Id="TuesPechkin.Wkhtmltox.AnyCPU.dll" />
    <ComponentRef Id="widevinecdmadapter.dll" />
    <ComponentRef Id="WPFUtils.dll" />
    <ComponentRef Id="Configuration_MarkdownSyntaxHighlighting.xml" />
    <ComponentRef Id="Documentation_Project Markdown User Guide.pdf" />
    <ComponentRef Id="en_Microsoft.Expression.Interactions.resources.dll" />
    <ComponentRef Id="en_System.Windows.Interactivity.resources.dll" />
    <ComponentRef Id="locales_am.pak" />
    <ComponentRef Id="locales_ar.pak" />
    <ComponentRef Id="locales_bg.pak" />
    <ComponentRef Id="locales_bn.pak" />
    <ComponentRef Id="locales_ca.pak" />
    <ComponentRef Id="locales_cs.pak" />
    <ComponentRef Id="locales_da.pak" />
    <ComponentRef Id="locales_de.pak" />
    <ComponentRef Id="locales_el.pak" />
    <ComponentRef Id="locales_en-GB.pak" />
    <ComponentRef Id="locales_en-US.pak" />
    <ComponentRef Id="locales_es-419.pak" />
    <ComponentRef Id="locales_es.pak" />
    <ComponentRef Id="locales_et.pak" />
    <ComponentRef Id="locales_fa.pak" />
    <ComponentRef Id="locales_fi.pak" />
    <ComponentRef Id="locales_fil.pak" />
    <ComponentRef Id="locales_fr.pak" />
    <ComponentRef Id="locales_gu.pak" />
    <ComponentRef Id="locales_he.pak" />
    <ComponentRef Id="locales_hi.pak" />
    <ComponentRef Id="locales_hr.pak" />
    <ComponentRef Id="locales_hu.pak" />
    <ComponentRef Id="locales_id.pak" />
    <ComponentRef Id="locales_it.pak" />
    <ComponentRef Id="locales_ja.pak" />
    <ComponentRef Id="locales_kn.pak" />
    <ComponentRef Id="locales_ko.pak" />
    <ComponentRef Id="locales_lt.pak" />
    <ComponentRef Id="locales_lv.pak" />
    <ComponentRef Id="locales_ml.pak" />
    <ComponentRef Id="locales_mr.pak" />
    <ComponentRef Id="locales_ms.pak" />
    <ComponentRef Id="locales_nb.pak" />
    <ComponentRef Id="locales_nl.pak" />
    <ComponentRef Id="locales_pl.pak" />
    <ComponentRef Id="locales_pt-BR.pak" />
    <ComponentRef Id="locales_pt-PT.pak" />
    <ComponentRef Id="locales_ro.pak" />
    <ComponentRef Id="locales_ru.pak" />
    <ComponentRef Id="locales_sk.pak" />
    <ComponentRef Id="locales_sl.pak" />
    <ComponentRef Id="locales_sr.pak" />
    <ComponentRef Id="locales_sv.pak" />
    <ComponentRef Id="locales_sw.pak" />
    <ComponentRef Id="locales_ta.pak" />
    <ComponentRef Id="locales_te.pak" />
    <ComponentRef Id="locales_th.pak" />
    <ComponentRef Id="locales_tr.pak" />
    <ComponentRef Id="locales_uk.pak" />
    <ComponentRef Id="locales_vi.pak" />
    <ComponentRef Id="locales_zh-CN.pak" />
    <ComponentRef Id="locales_zh-TW.pak" />
    <ComponentRef Id="Styles_github-markdown.css" />
  </Feature>
</Wix>

wixxmlgenerator's People

Contributors

aykanatm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wixxmlgenerator's Issues

IDs with illegal characters are generated

My source dir contains directories with the character "-". For example: de-DE
When running the tool it results in IDs containing "-". For example: <DirectoryRef Id="de-DEFolderId">
WiX 4.04 then complains: WIX0014 The DirectoryRef/@Id attribute's value, 'de-DEFolderId', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.

Can we have "-" automatically get replaced by "_" in IDs?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.