[wix-users] Install many files in local app data folder

Brian Enderle brianke at gmail.com
Thu May 19 04:40:25 PDT 2016


You can do this by adding the following to the <Target Name="BeforeBuild">
section in the .wixproj file:

   <!-- Harvest ScriptComponents -->
    <HeatDirectory NoLogo="$(HarvestDirectoryNoLogo)"

 SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"

 SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"
                           ToolPath="$(WixToolPath)"

 TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"

 TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)"
                           VerboseOutput="$(HarvestDirectoryVerboseOutput)"

 AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"

 GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"
                           OutputFile="ScriptsComponents.wxs"

 SuppressFragments="$(HarvestDirectorySuppressFragments)"

 SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"
                           Transforms="%(HarvestDirectory.Transforms)"
                           Directory="$(SolutionDir)Command_Scripts"
                           ComponentGroupName="ScriptsComponents"
                           DirectoryRefId="SCRIPTS_FOLDER"
                           KeepEmptyDirectories="false"
                           PreprocessorVariable="var.ScriptsSourceDir"
                           SuppressCom="%(HarvestDirectory.SuppressCom)"
                           SuppressRootDirectory="true"

 SuppressRegistry="%(HarvestDirectory.SuppressRegistry)" />

Directory variable is a relative or absolute path to the files to harvest.

ComponentGroupName is used as the name of the .wxs file to be created by
Harvest.

The variable SCRIPTS_FOLDER is defined as one of your folders in the
Product.wxs file.

You will need to define the "var.ScriptsSourceDir" in your WiX project file
(right click on Project, select Properties and then Build tab).  Enter the
path in the Preprocessor Variables field like
"ScriptsSourceDir=$(SolutionDir)AutomatedSQLMigration\SQLCode2.0\Command_Scripts;"

To include this file in the project add the following to Product.wxs file
in the <Feature> section:

      <ComponentGroupRef Id="ScriptsComponents" />



Brian

If you can't explain it simply, you don't understand it well enough.  -
Albert Einstein

On Wed, May 18, 2016 at 10:48 PM, Gary M <garym at oedata.com> wrote:

> I recently installed a product with 3400-3600 files.  I used heat to
> generate the wxs files. Heat will create a component for each file and a
> component group for easy referencing.
> These are my heat config settings (sorry I use maven)
>                   <configuration>
>                       <executable>heat</executable>
>
> <workingDirectory>${fom.resource.dir}</workingDirectory>
>                       <arguments>
>                         <!-- Specify the directory to harvest, -->
>                         <argument>dir</argument>
>                         <argument>Support_Files</argument>
>                         <!-- Generate guids now. All components are given a
> guid when heat is run. -->
>                         <argument>-gg</argument>
>                         <!-- Keep empty directories. -->
>                         <argument>-ke</argument>
>                          <!-- Suppress generation of fragments for
> directories and components. -->
>                         <argument>-sfrag</argument>
>                        <!-- Substitute File/@Source="SourceDir" with a
> preprocessor
>                         or a wix variable (e.g. -var var.MySource will
> become
>                         File/@Source="$(var.MySource)\myfile.txt"  -->
>                         <argument>-var</argument>
>                         <argument>var.SupportSourceDir</argument>
>                         <!-- Directory reference to root directories
> (cannot contains spaces). -->
>                         <argument>-dr</argument>
>                         <argument>IMA.INSTALL.DIR</argument>
>                         <!-- Component group name (cannot contain spaces
> e.g -cg MyComponentGroup). -->
>                         <argument>-cg</argument>
>                         <argument>Support</argument>
>                         <!-- Specify output file (default: write to current
> directory). -->
>                         <argument>-out</argument>
>
> <argument>${wix.generated.sources.dest}\support-files.wxs</argument>
>                       </arguments>
>                   </configuration>
>
>
> On Wed, May 18, 2016 at 5:49 PM, Sukhitha jayathilake <sukhij25 at gmail.com>
> wrote:
>
> > Hi,
> >
> > We are trying to install a Demo application and all the Demo data needs
> to
> > be installed in the UserProfile AppData Local folder. Does every
> component
> > that gets installed in UserProfile needs to have a RegistryKey KeyPath? I
> > do generate all the components that needs to be installed using heat.exe.
> > So they are generated with KeyPath="Yes" in the file element. There are
> > like hundreds of files. Do all of those FileElements needs to have a
> > RegistryKey KeyPath?
> >
> > I have worked around this when I was working with a Powershell module
> > installer. Where I was able to change the INSTALLDIR to
> > UserProfile\WindowsPowerShell folder during the installation, and install
> > there without any RegistryKey Keypaths. And it Uninstalls fine too. Do I
> > need to do something like that here, like setting the Install directory
> for
> > the demo data during the installation?
> >
> > I'm fairly new to using wix and making windows installers. Please Help.
> > Thank you!
> >
> > --
> > Sukhi
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> > http://www.firegiant.com/
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>


More information about the wix-users mailing list