WiX - HTTP Response Header - iis-7

I am using WiX 3.10. for a website that is used in IE only. (.net 2.0)
We recently had a few users complaining about the disturbed layout, because their browser's compatibility setting.
One way of fixing this, seems to be adding a HTTP Response Header (Name: X-UA-Compatible, Value: IE=EmulateIE7) in the IIS
Can I do this somehow from the Product.WXS, so after installation, this would be set?
Thank you

Here is the sample code to setup a website and the HTTP Response header using WiX.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">
<Product Id="*" Name="IISTest" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="9670352d-2b30-446e-b17f-a31a7d08d917">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="IISTest" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentGroupRef Id="MyWebsiteIISConfiguration" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- Will reference to C:\inetpub-->
<Directory Id="INETPUB" Name="Inetpub">
<Directory Id="WwwRoot" Name="WWWRoot">
<!-- Will reference to c:\Inetpub\wwwroot\MyWebSite-->
<Directory Id="INSTALLFOLDER" Name="MyWebSite" />
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="MyInstallWebsite" Guid="1253DBFC-D959-470E-A044-7DDABFFC1298" KeyPath="yes">
<!-- Install to default web site -->
<iis:WebSite Id="MyWebsiteWebsite" Description='MY Website' Directory='INSTALLFOLDER' AutoStart='yes' StartOnInstall='yes'>
<iis:HttpHeader Id="header_id" Name="X-UA-Compatible" Value="IE=EmulateIE7"/>
<iis:WebAddress Id="AllUnassigned" Port="80" />
<iis:WebApplication Id="MyWebsiteApplication" Name="[MyWebsiteWebsite][WEBSITE_ID]" WebAppPool="MyWebsiteAppPool">
</iis:WebApplication>
</iis:WebSite>
</Component>
<Component Id="MyWebsiteAppPool" Guid="" KeyPath="yes">
<iis:WebAppPool Id="MyWebsiteAppPool"
Name="MyWebsiteAppPool"
Identity="applicationPoolIdentity"
ManagedPipelineMode="Integrated"
ManagedRuntimeVersion="v4.0" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent" Guid="{6F44232F-1C0B-4278-AB2B-BFD34FAE863C}">
<File Id="favicon.ico" Source="favicon.ico" />
</Component>
</ComponentGroup>
<ComponentGroup Id="MyWebsiteIISConfiguration">
<ComponentRef Id="MyInstallWebsite" />
<ComponentRef Id="MyWebsiteAppPool" />
</ComponentGroup>
</Fragment>
</Wix>

The HttpHeader element lets you specify arbitrary headers.

Related

Error allocating file install folder in WIX 3.9

I am setting up the installation locations for my installer. However, it throws an error when I try to set the locations. Source code:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Wix_setup" Language="1033" Version="1.0.0.0" Manufacturer="Frank Jansen" UpgradeCode="37a42e55-dea8-47da-8f4f-fb065dd38a9e">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes"/>
<Feature Id="ProductFeature" Title="Wix_setup" Level="1">
<!--create a seperate ComponentGroupRef and Fragment for each extra added program-->
<ComponentGroupRef Id="InstallationFiles" />
<ComponentGroupRef Id="DLLs" />
<ComponentGroupRef Id="IniFiles" />
<ComponentGroupRef Id="Scripts" />
<ComponentGroupRef Id="TeamViewer" />
<ComponentGroupRef Id="Wix_database" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="Wix_setup" />
</Directory>
</Directory>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" ></Property>
<UIRef Id="WixUI_InstallDir"/>
</Fragment>
<Fragment>
<ComponentGroup Id="DLLs" Directory="INSTALLFOLDER">
<Component Id="cmp0F2CCC19DBBB1A659BB614D21AAFB413" Guid="{1B34DA48-A891-4923-8437-8116FB986A4E}">
<File Id="filFD63715191DEBF4B34A2836B7D53C62B" KeyPath="yes" Source="C:\Users\fjansen\Documents\MMI installatie bestanden\MMI install files\Program Files\ActiveX Control Pad\ScrWiz.dll" />
</Component>
</ComponentGroup>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" />
</Directory>
</Fragment>
What I am trying to do in this example is placing a file in the program files folder. But when I build the solution it throws the following errors:
Error 3 Duplicate symbol 'Directory:ProgramFilesFolder' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique.
Error 1 Duplicate symbol 'Directory:TARGETDIR' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique.
I don't understand why I get these errors. I need to define multiple pads to multiple locations and some parts of those pads are the same as other ones, which means that, for example, I need to use ProgramFilesFolder multiple times for different files. But now I get an error when I do that.
What am I doing wrong?
This structure should help you.
Reference the id of CommonFilesFolder
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="Wix_setup" />
<Directory Id="CommonFilesFolder" />
</Directory>
</Directory>
</Fragment>
this link might help you in future
https://msdn.microsoft.com/en-us/library/s2esdf4x%28VS.80%29.aspx
You cant repeat ids for directories.
Try below code:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Wix_setup" Language="1033" Version="1.0.0.0" Manufacturer="Frank Jansen" UpgradeCode="37a42e55-dea8-47da-8f4f-fb065dd38a9e">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes"/>
<Feature Id="ProductFeature" Title="Wix_setup" Level="1">
<!--create a seperate ComponentGroupRef and Fragment for each extra added program-->
<ComponentGroupRef Id="InstallationFiles" />
<ComponentGroupRef Id="DLLs" />
<ComponentGroupRef Id="IniFiles" />
<ComponentGroupRef Id="Scripts" />
<ComponentGroupRef Id="TeamViewer" />
<ComponentGroupRef Id="Wix_database" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="Wix_setup" />
</Directory>
</Directory>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" ></Property>
<UIRef Id="WixUI_InstallDir"/>
</Fragment>
<Fragment>
<ComponentGroup Id="DLLs" Directory="INSTALLFOLDER">
<Component Id="cmp0F2CCC19DBBB1A659BB614D21AAFB413" Guid="{PUT-GUID-HERE}">
<File Id="filFD63715191DEBF4B34A2836B7D53C62B" KeyPath="yes" Source="C:\Users\fjansen\Documents\MMI installatie bestanden\MMI install files\Program Files\ActiveX Control Pad\ScrWiz.dll" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

How to replace attributes in XML transforms without the name attribute

I am using SlowCheetah to transform my Log4Net files when I publish. However, it can't seem to distinguish between the attributes in different appender sections.
My Log4Net.config looks basically like this:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="DevEmail" />
<from value="DevEmail" />
<subject value="Dev Warning" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="Time: %date%newlineHost: %property{log4net:HostName}%newlineClass: %logger%newlineUser: %property{user}%newlineMessage: %message%newline%newline%newline" />
</layout>
<threshold value="WARN" />
</appender>
<appender name="FatalSmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="DevEmail" />
<from value="DevEmail" />
<subject value="Dev Fatal" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="Time: %date%newlineHost: %property{log4net:HostName}%newlineClass: %logger%newlineUser: %property{user}%newlineMessage: %message%newline%newline%newline" />
</layout>
<threshold value="FATAL" />
</appender>
</log4net>
And my transform file looks like this:
<?xml version="1.0" encoding="utf-8" ?>
<log4net xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="ProductionEmail" xdt:Transform="SetAttributes" />
<from value="ProductionEmail" xdt:Transform="SetAttributes" />
<subject value="Production Warning" xdt:Transform="SetAttributes" />
</appender>
<appender name="FatalSmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="ProductionEmail" xdt:Transform="SetAttributes" />
<from value="ProductionEmail" xdt:Transform="SetAttributes" />
<subject value="Production Fatal" xdt:Transform="SetAttributes" />
</appender>
</log4net>
The problem is that the transformed config has the same subject attribute value for both appenders; I guess when it hits the SetAttributes it can't tell which tag it's looking for, so it transforms all of them. What it the correct syntax to tell it to only find the elements within the same appender? I assume I need to use the xdt:Locator attribute, but I can't do Match(name) like I do for web.config because these elements don't have a name attribute. The appender element has a name attribute, but I don't know how to tell it to match based on the parent element's name.
I know that I could use replace on the appender node, with the match(Name), but then I would be replacing the entire node, including a bunch of elements such as the layout which I don't want to be transformed (and thus have multiple copy-pastes of the same code, which I would like to avoid).
I found the answer in this MSDN article: http://msdn.microsoft.com/en-us/library/dd465326.aspx.
I needed to use xdt:Locator="Match(name)" on the parent <appender> node, and then xdt:Transform on the child nodes. I had tried this previously but had used xdt:locator="Match(name)" instead of xdt:Locator="Match(name)"... The attribute is case sensitive.

Create Web app pool and Site on on Server 2008 R2 with IIS 7.5, WiX 3.7

Site is not getting created as intended. Please see the Image. Two virtual directories for CoreWebServicesV3 are getting created one pointing to default app-pool and another app-pool which I have created.
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLLOCATION" Name="CoreWebservicesV3" >
<Directory Id="WEBSITE" Name="$(var.CWSProductVersion)"/>
</Directory>
</Directory>
</Directory>
<Feature Id="ProductFeature" Title="CoreWebservicesMSI" Level="1" Display="expand" ConfigurableDirectory="INSTALLLOCATION">
<Component Directory="INSTALLLOCATION">
<RegistryValue Root="HKCU" Key="Websites\CoreWebservices\3.0" Name="Remembered" Value="[INSTALLLOCATION]" Type="string" />
<RemoveFolder Id="CleanApplicationFolder" On="uninstall"/>
</Component>
<Feature Id="MainContent" Title="CoreWebservices Website" Description="The CWS website content" Level="1">
<ComponentGroupRef Id="MyWebIssConfiguration" />
<ComponentGroupRef Id="CoreWebservices" />
</Feature>
</Feature>
<ComponentGroup Id="MyWebIssConfiguration">
<ComponentRef Id="MyWebAppPoolCmp"/>
<ComponentRef Id="MyWebsiteCmp"/>
<ComponentRef Id="MyWebVirtualDirCmp"/>
</ComponentGroup>
<DirectoryRef Id="INSTALLLOCATION">
<Component Id="MyWebsiteCmp" Guid="{751DEB01-ECC1-48ff-969A-65BCEE9E0528}" KeyPath="yes">
<iis:WebSite Id="CoreWebservicesV3" Description='CoreWebservicesV3' Directory='INSTALLLOCATION' >
<iis:WebAddress Id="AllUnassigned" Port="80" />
</iis:WebSite>
</Component>
<Component Id="MyWebAppPoolCmp" Guid="{751DEB01-ECC1-48ff-869A-65BCEE9E0529}" KeyPath="yes">
<util:User Id="MyWebAppPoolUser"
CreateUser="no"
Name="[IDENTITY_NAME]"
Password="[IDENTITY_PWD]" RemoveOnUninstall="yes"
Domain="[IDENTITY_DOMAIN]" />
<iis:WebAppPool Id="CWSWebAppPool"
Name="[WEB_APP_NAME]"
ManagedRuntimeVersion="v4.0"
ManagedPipelineMode="Integrated"
Identity="other"
User="MyWebAppPoolUser" >
<iis:RecycleTime Value="00:00"/>
</iis:WebAppPool>
</Component>
<Component Id="MyWebVirtualDirCmp" Guid="{751DEB01-ECC1-48ff-869A-65BCEE9E0528}" KeyPath="yes" >
<iis:WebVirtualDir Id="MyWebVirtualDir" Alias="[VIRTUAL_DIR_VAL]" Directory="INSTALLLOCATION" WebSite="CoreWebservicesV3" >
<iis:WebDirProperties Id="MyWebVirtDirProperties" AnonymousAccess="no" BasicAuthentication="no" WindowsAuthentication="yes" />
<iis:WebApplication Id="MyWebWebApplication" Name="[VIRTUAL_DIR_VAL]" WebAppPool="CWSWebAppPool" />
</iis:WebVirtualDir>
</Component>
</DirectoryRef>

Example WiX configuration to deploy a simple ASP.NET website

Just starting with WiX (at version 3.8), we're surprised that it doesn't seem at all straightforward to deploy a website with WiX. Not yet concerned about any infrastructure aspects like IIS or custom actions to tailor the setup, or even whether we precompile the site, just would be happy to deploy a trivial website to a folder. But the only file that ever gets deployed is a single dll (whose name appears to be derived from the AssemblyName property configured in the csproj).
After some googling, we tried setting Harvest=True on the project reference, and adding <EnableProjectHarvesting>True</EnableProjectHarvesting> to the wixproj file. But only that same dll ever gets deployed. (Orca shows it to be the only file in the MSI file table.)
Adding the following to the wixproj succeeds in getting Heat, Candle and Light to process a set of files from a hard-coded folder, but does not succeed in deploying anything else: still only the one dll is included in the MSI file table.
<Target Name="BeforeBuild">
<!-- try hardcoded path -->
<HeatDirectory
ToolPath="$(WixToolPath)"
OutputFile="%(ProjectReference.Filename).wxs"
Directory="C:\Dev\2010\HelloWixWebApplication\HelloWixWebApplication"
GenerateGuidsNow="true"
DirectoryRefId="TARGETDIR"
/>
<!-- some properties that Candle will use, so we should be able to to tell it to look in this folder for the .wks -->
<PropertyGroup>
<!--IncludeSearchPaths>.</IncludeSearchPaths -->
<CompilerAdditionalOptions>%(ProjectReference.Filename).wxs</CompilerAdditionalOptions>
<!--and one for Light: -->
<LinkerAdditionalOptions>obj\Debug\%(ProjectReference.Filename).wixobj</LinkerAdditionalOptions>
</PropertyGroup>
</Target>
Returning to the main question, and the thing that would really help but we can't seem to find: an actual example of deploying a simple asp.net website using WiX. Anyone? TIA.
In reply to Rob Mensching's question, the additional .wxs file that gets generated from this config is shown below. (Ignore the mis-spelled HellowWix.. which I corrected elsewhere.)
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="TARGETDIR">
<Directory Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997" Name="HellowWixWebApplication" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir6DED4C9E136E741825339CEA6DE213D8">
<Component Id="cmp04A9076B920B178A9BB40ABB0D0C5785" Guid="{C6AA8596-0107-4360-85B1-503CC6F319FA}">
<File Id="fil021D16CABEED58F6659FD4103DD68AC4" KeyPath="yes" Source="SourceDir\bin\HellowWixWebApplication.dll" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmp19A9163AE8A7925CB6C4247D145B22B6" Guid="{D7B85294-12DF-4784-B6DA-BF7AEBA475C9}">
<File Id="fil24F0BD7A232604DB4D8E369EFDB7AB28" KeyPath="yes" Source="SourceDir\Web.Release.config" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmp22213FE3CD8C99A9A7563D7AFD66052E" Guid="{99E59BF6-640B-4E35-B4D8-671927AF9BD3}">
<File Id="fil4AA1682891BEFAA2AB3CB1ABCBE9C155" KeyPath="yes" Source="SourceDir\HellowWixWebApplication.csproj" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmp277C2DBCB4DB3C289C46A9784423A2C1" Guid="{7DF707B0-55BF-4899-805C-97A1A2081528}">
<File Id="filE62AD3DD98C8055C24348922079D0E2E" KeyPath="yes" Source="SourceDir\Default.aspx.designer.cs" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmp2E90B366B07FD51B623E7CF089E2932D" Guid="{17914BB7-5A02-499B-AC0C-F1F9FCB6019F}">
<File Id="filC05278F3F8EB3611EB1EBB30F6EA4AFB" KeyPath="yes" Source="SourceDir\Web.config" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmp3025675392247E7856146E4D28076668" Guid="{2905F7E7-536B-44E5-8C10-45A954CE9E86}">
<File Id="fil8EB5092298D94AE4C4677473CAAFC0E0" KeyPath="yes" Source="SourceDir\Web.Debug.config" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir6E0901CF23FF0CE2677DE6B8BBA3B8BD">
<Component Id="cmp7C99050A7370BF342937DF8E86BA1863" Guid="{5DF80AF2-1459-43CD-A649-90AB1F2C57AE}">
<File Id="filB73CA61225E396C5CD26B29E8FAA7AFE" KeyPath="yes" Source="SourceDir\obj\Debug\HellowWixWebApplication.pdb" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir4F5CB8DBC18741F08CCFF2B59DDE3481">
<Component Id="cmp976F1DA49CEA0FDDB2D0EA8C756C7DCF" Guid="{1069A669-F349-427F-B01A-64E942AFED2F}">
<File Id="fil21676E8D65B4C460832839007C43343E" KeyPath="yes" Source="SourceDir\Properties\AssemblyInfo.cs" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmpA0C26A291B35A1F7C8F75C76C408C355" Guid="{51AE16C4-A743-4EFA-8678-064A6550F228}">
<File Id="fil9A7337716828B5F0F975E4B424B18285" KeyPath="yes" Source="SourceDir\Default.aspx.cs" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir6E0901CF23FF0CE2677DE6B8BBA3B8BD">
<Component Id="cmpAA37E12AC25051F1FB98359B5654CBB6" Guid="{4D81902A-9F6C-47D8-95AF-ED1D7062771C}">
<File Id="fil053D1EA59D1DC9708FA9DF93DCE32BF2" KeyPath="yes" Source="SourceDir\obj\Debug\HellowWixWebApplication.dll" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir6E0901CF23FF0CE2677DE6B8BBA3B8BD">
<Component Id="cmpAB40655D2EEBFE8E7DA2D5C008705F7A" Guid="{01C5537C-257D-4472-BB27-778DDB5E2CEA}">
<File Id="fil1B67F0463CE8AA35030E31A3E3BFA82D" KeyPath="yes" Source="SourceDir\obj\Debug\HellowWixWebApplication.csproj.FileListAbsolute.txt" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir6E0901CF23FF0CE2677DE6B8BBA3B8BD">
<Component Id="cmpD72354FE851F86AF61BFD2B884E05B34" Guid="{230F8CC1-9DF3-4B44-B6C8-617090329C82}">
<File Id="filBF0022433A84B60F69F4ECF6724E4BA3" KeyPath="yes" Source="SourceDir\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmpEA2E4AE70EBEAF6FCFC294661CE9EF29" Guid="{ADE9B8A8-F4CC-4CE7-845F-5C526A9E6149}">
<File Id="fil76F4E5B6801E021CFE962F5C33DEA62F" KeyPath="yes" Source="SourceDir\Default.aspx" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Component Id="cmpEC68C3F57C9E201E67744CC0DA54E083" Guid="{42F553F5-90B1-4190-A6BC-1DD41928F151}">
<File Id="fil4B42859DA454D34945962FBFB3BFB0C1" KeyPath="yes" Source="SourceDir\HellowWixWebApplication.csproj.user" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Directory Id="dir4F5CB8DBC18741F08CCFF2B59DDE3481" Name="Properties" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Directory Id="dir6DED4C9E136E741825339CEA6DE213D8" Name="bin" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirAD6B115F080FDBD956168CB7C622647C">
<Directory Id="dir6E0901CF23FF0CE2677DE6B8BBA3B8BD" Name="Debug" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirE7F2BE36CFADC3ED9ACCB1F42198C997">
<Directory Id="dirAD6B115F080FDBD956168CB7C622647C" Name="obj" />
</DirectoryRef>
</Fragment>
</Wix>
To include the generated files they need to be within a component which is then included in a feature.
Easiest way for you to do this is to modify the HeatDirectory element changing it to:
<HeatDirectory
ToolPath="$(WixToolPath)"
OutputFile="%(ProjectReference.Filename).wxs"
Directory="C:\Dev\2010\HelloWixWebApplication\HelloWixWebApplication"
GenerateGuidsNow="true"
DirectoryRefId="TARGETDIR"
ComponentGroupName="ContentFiles"
SuppressFragments="true" />
adding the ComponentGroupName and SupressFragments parameters. Then include that component in your feature by using the <ComponentGroupRef Id="ContentFiles" /> element.
I usually also add the SuppressUniqueIds attribute so it is a bit nicer to read.
Personally I prefer to then take that generated wxs and include it directly in my project and update when new files are included. That way it is exactly how I want it. The other option is to use a xslt transform to strip out the stuff you don't need like the csproj etc. and supply in the Transform attribute.
There is now a Visual Studio extension VDProj to WiX Converter which can be downloaded from the Tools menu, Extensions and Updates. There is also another WIX-related extension there, which is a designer for creating and manipulating Wix setup projects:

How to get Chirpy working with JS and mash.config

I just downloaded and installed the most recent version of Chirpy [Nude Chirpy v1.0.0.5.3]
I created a "mash.less.chirp.config" file in my CSS directory, and it's compressing/minifying very spectacularly!!!
<root>
<FileGroup Name="site.css">
<File Path="elements.css" />
<File Path="jquery-ui-1.8.4.custom.css" />
<File Path="site.less" />
<File Path="wmd.css" />
</FileGroup>
</root>
I also created a "mash.chirp.config" file in my Script directory, unfortunately it's not doing anything at all.
<root>
<FileGroup Name="site.js">
<File path="jquery-ui-1.8.4.custom.min.js" Minify="false" />
<File path="un-master.js" />
<File path="jquery-ui-timepicker-addon.min.js" Minify="false" />
<File path="jquery-nmcFormHelper.js" />
<File path="jquery.textarearesizer.min.js" Minify="false" />
<File path="jquery-openid.js" />
<File path="jquery.timeago.js" />
</FileGroup>
</root>
any help/direction on this will be greatly appreciated.
[ADDED INFO]
I'm using Visual Studio 2010 Professional
I've got an ASP.NET MVC3 Project
Folder Structure...
ROOT/Assets/Scripts/mash.chirp.config
ROOT/Assets/Scripts/[all_my_js_files].js
Capitalize the p in path, brah!
I changed my config to the following, and it seems to be working
<?xml version="1.0" encoding="utf-8" ?>
<root xmlns="urn:ChirpyConfig"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ChirpyConfig http://www.weirdlover.com/chirpy/chirp.xsd">
<FileGroup Name="site.js">
<File Path="jquery-ui-1.8.4.custom.min.js" Minify="false" />
<File Path="un-master.js" />
<File Path="jquery-ui-timepicker-addon.min.js" Minify="false" />
<File Path="jquery-nmcFormHelper.js" />
<File Path="jquery.textarearesizer.min.js" Minify="false" />
<File Path="jquery-openid.js" />
<File Path="jquery.timeago.js" />
</FileGroup>
</root>
Evidently it's case sensitive Path instead of path.

Resources