A command line tool for generating folder and file structure for Wix Toolset
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
WixXmlGenerator
.gitignore
.travis.yml
LICENSE
README.md

README.md

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>