Search code examples
c#winformswix

Wix- How to copy a directory to install folder


I have a Bin folder with many files in my project. For now, I only know how to add specific files to install folder with the code below.

<File Source='$(var.Debug)Myapplication.exe' Id='file4028276A0CAD84E3BDE449237AE31A5F' />  

However, I want to move a whole directory to the install path. For example, move the whole folder "Bin" to the install path "C:\Myapplication".

What should I do then?

Thanks in advance!


Solution

  • how to include a large directory tree in a wix installer

    This looks good. But too much work to do.

    How do copy a folder in wix

    The above link worked fine. But cannot copy sub folders.

    So what I did was, I created an app which reads the whole folder and get its sub directories and files and generates the necessary code blocks like

     <Component Id="myfile" Guid="GUID">
         <File Id="myfile.txt" Source="MySourceFiles\myfile.txt" KeyPath="yes" Checksum="yes"/>
     </Component>
    

    Then I added the generated code block to the .wxs file.

    The initial time you spend for creating this app is not a waste. Because you can keep using it forever. I recommend you to copy file by file, because it's helpful during an upgrade or a repair. MSI keeps a record for each file which is to be copied. So it's maintainable and useful on upgrades and repairs.