Yeah I didn't explain that path thing very well. I was referring to this path:
C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs This probably shouldn't be here. Best to keep this out of the WiX install directory. If this is a file which is generated for every build, then either use an intermediates folder in your build tree, or put it into the %tmp% directory. This is probably because you're not specifying a full path for the -out parameter. I'm not entirely clear on why you're launching an installer from CruiseControl - that seems a little weird to me. It sounds like you're trying to use MSI to achieve a continuous deployment scenario, and it's not really designed for that - is that what you're trying to do? I've not actually used the heat -var argument, so the advice I can give you will be limited. However, I believe that if you add "-var:TrunkDbRootDir" to your heat command, it will generate something like this: <File Source="$(var.TrunkDbRootDir)\file.ext"/> You will have to define that variable elsewhere, and it's up to you to make sure that it points to the correct place so that the path is correct when the variable is resolved. Someone with more experience of heat.exe might be able to help you further. Hope that helps On 18 November 2013 14:36, Suvrajyoti Panda <suvrajyo...@contata.co.in>wrote: > Hi John, > > When I are created the trunkdb.wxs file i had ditected it to > D:\Project\ESI\Code\trunk\db. These files exist now also and are part of > the SVN source control. I do not get what you mean by "C:\Program Files > (x86)" and "I'm not sure how it came up with that path" . I am just > executing Light from the path C:\Program Files (x86)\WiX Toolset v3.7\bin > where in my two source files are also placed(tortenginedemo.wxs and > trunkdb.wxs). By File/@Source i guess you mean that as of now in the > fragment the path is only SourceDIr. Let me know how we can do that. > > I need this to be dynamic in the sense that a batch file would execute > that would create the directory *db** (*D:\Project\ESI\Code\trunk\db*). *The > WIX installer that needs to be created should install the “db” > directories that is created by the batch file. Basically i need to execute > the installer when the scroipts for cruise control are fired. The firing of > the cruisecontrol script fires the installer as well through a batch file. > > This is the approach that has been decided as of now. In case you other > pointers do let me know specially the "You will need to either specify the > -var argument to heat.exe with a variable name (and tweak the value so that > it matches correctly) or write some build code to tweak the contents of > this file." if this helps. > > Moreover it is not that the error is being shown foll all the files in the > db directory . It is showing for about 150 files in the db directory. There > are a total of 379 files in the same. > > Regards, > SuvraJyoti > > > On 18-11-2013 19:00, John Ludlow wrote: > > Do those files exist at compilation time? They are "C:\Program Files > (x86)" paths, and your code doesn't specify a full path in File/@Source. > I'm not sure how it came up with that path, but it's probably wrong, since > you are likely building your application binaries in a build area. > > You will need to either specify the -var argument to heat.exe with a > variable name (and tweak the value so that it matches correctly) or write > some build code to tweak the contents of this file. > > Heat.exe can, with the correct arguments, give you some generated code you > can just plug into your project and go. Probably. In theory. If the planets > are all in the correct alignments and you've made the right sacrifices. In > practice, you should consider whether this kind of dynamic code generation > is really what you need. > > Do the contents of that directory change without warning or beyond your > team's ability to keep up with the changes? If so, then this kind of code > generation is potentially a way around the issue, but ideally you should > reconsider the application design. > > However, if this is more about generating code so you don't have to > crank it by hand, then I'd recommend taking the generated code and adding > the missing or incorrect attributes (possibly with PowerShell) and then > take that code as source. Further updates to this code can be done by hand. > > Hope that helps > > > On 18 November 2013 11:18, Suvrajyoti Panda <suvrajyo...@contata.co.in>wrote: > >> Hi John, >> >> Any updates on the below issue. I am still stuck there. >> >> Regards, >> Suvra Jyoti >> -------- Original Message -------- >> Subject: Fwd: Re: [WiX-users] Referring to fragments Date: Mon, 18 >> Nov 2013 15:06:38 +0530 From: Suvrajyoti Panda >> <suvrajyo...@contata.co.in> <suvrajyo...@contata.co.in> To: John Ludlow >> <john.ludlow...@gmail.com> <john.ludlow...@gmail.com> >> >> >> >> Attaching the source files once again. >> >> -------- Original Message -------- Subject: Re: [WiX-users] Referring >> to fragments Date: Mon, 18 Nov 2013 15:04:31 +0530 From: Suvrajyoti >> Panda <suvrajyo...@contata.co.in> <suvrajyo...@contata.co.in> To: John >> Ludlow <john.ludlow...@gmail.com> <john.ludlow...@gmail.com> CC: General >> discussion about the WiX toolset. >> <wix-users@lists.sourceforge.net><wix-users@lists.sourceforge.net> >> >> Hi John, >> >> I did as you suggested. I was getting the error C:\Program Files >> (x86)\WiX Toolset v3.7\bin\TortEngineDemo.wxs(24) : error LGHT0 >> 094 : Unresolved reference to symbol 'Component:TORTDEMO' in section >> 'Product:{5 >> A1581BE-27C3-46A1-8699-4F1D642C97E0}'. So i changed the name to TORTDEMO >> instead of cmpTrunkDB earlier as below: >> >> <Directory Id='TARGETDIR' Name='SourceDir'> >> <Directory Id='DesktopFolder' Name='PFiles'> >> <Directory Id='TORTDEMO' Name='Tort Demo'> >> <Component Id="*TORTDEMO*" >> Guid="9D5FEECE-74FE-45A2-BD34-41562EC8ED16"> >> <RemoveFolder Id='TORTDEMO' On='uninstall' /> >> <RegistryValue Root='HKCU' >> Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' >> KeyPath='yes' /> >> </Component> >> </Directory> >> </Directory> >> </Directory> >> >> Now i am getting the below error. >> >> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(751) : error >> LGHT0103 : >> The system cannot find the file 'SourceDir\tortoptions.v2.db'. >> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(754) : error >> LGHT0103 : >> The system cannot find the file 'SourceDir\tortoptions.v3.db'. >> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(757) : error >> LGHT0103 : >> The system cannot find the file 'SourceDir\tortoptions.v4.db'. >> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(760) : error >> LGHT0103 : >> The system cannot find the file 'SourceDir\tortoptions.v5.db'. >> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(763) : error >> LGHT0103 : >> The system cannot find the file 'SourceDir\tortosedata.db'. >> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(766) : error >> LGHT0103 : >> >> Please suggest on the same. >> >> On 18-11-2013 14:24, John Ludlow wrote: >> >> Ah, I missed that. >> >> You need to create a reference in your feature to each component, >> because now you have components which aren't assigned to any feature, which >> means they would never be installed. >> >> Please try this: >> >> 1. On your Heat.exe call, specify the -cg argument with a component >> name: >> >> heat dir "D:\Project\ESI\Code\trunk\db" -cg trunkdb -gg -sfrag -dr >> TORTDEMO -out trunkdb.wxs. >> >> This should add a component group with all the components in the >> output. The ID should be trunkdb, which you can reference in your Feature. >> >> 2. Change your Feature element like so: >> >> <Feature Id='Complete' Level='1'> >> <ComponentRef Id='TORTDEMO' /> >> <ComponentGroupRef Id='trunkdb'/> >> </Feature> >> >> This should reference the component group created in Step #1, drawing >> all those components into that feature. >> >> At first glance, the registry entry you've created looks fine. I'd >> probably specify a value, but that's just me. >> >> >> On 18 November 2013 08:32, Suvrajyoti Panda <suvrajyo...@contata.co.in>wrote: >> >>> >>> Hi John, >>> >>> Please also have a look at the directory structure and registry entry i >>> am creating. Let me know in case i need a change there as well. >>> >>> Regards, >>> Suvra Jyoti >>> >>> -------- Original Message -------- Subject: Re: [WiX-users] Referring >>> to fragments Date: Mon, 18 Nov 2013 13:47:44 +0530 From: Suvrajyoti >>> Panda <suvrajyo...@contata.co.in> <suvrajyo...@contata.co.in> To: General >>> discussion about the WiX toolset. >>> <wix-users@lists.sourceforge.net><wix-users@lists.sourceforge.net>, >>> john.ludlow...@gmail.com >>> >>> Hi John, >>> >>> Thanks for the clarifications. I have come in in the morning and tried >>> to follow the steps as u have suggested. Attaching my two source files >>> for your reference. >>> >>> Below is what i have tried to do today: >>> >>> >>> - I have created the file trunkdb.wxs using the following >>> command:heat dir "D:\Project\ESI\Code\trunk\ >>> db" -gg -sfrag -dr TORTDEMO -out trunkdb.wxs. >>> So the file generated looks like the below snippet: <Wix xmlns= >>> >>> "http://schemas.microsoft.com/wix/2006/wi"<http://schemas.microsoft.com/wix/2006/wi> >>> > >>> <Fragment> >>> <DirectoryRef Id="TORTDEMO"> >>> <Directory Id="dir653F7E432DCA0892A253D0CEC7775D03" >>> Name="db"> >>> <Component Id="cmp159DEBB341761ACFD08D530D4AB638B2" >>> Guid="{F89E44FD-879E-4076-B1A9-4CC2DFDB9DF4}"> >>> <File Id="fil13F4C3BF2526AB7CCACA852D90DAA880" >>> KeyPath="yes" Source="SourceDir\alarm.db" /> >>> </Component> >>> <Component Id="cmpB5B2B206AA7A6A0007EEC8D894834050" >>> Guid="{88DECB74-680F-4075-B764-4AE663664829}"> >>> <File Id="fil34C37BE68FA25CF6AE6B3151F5727B4B" >>> KeyPath="yes" Source="SourceDir\batch.db" /> >>> </Component>. >>> >>> ..... >>> ..... >>> ..... >>> . >>> . >>> . >>> >>> So here i have generated the DirectoryRef Id as suggested by you. Now >>> in the TortEngineDemo.wxs i am trying to refer it as below : >>> >>> <?xml version='1.0' encoding='windows-1252'?> >>> <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> >>> <Product Name='Tort Demo 1.0' >>> Id='5A1581BE-27C3-46A1-8699-4F1D642C97E0' >>> UpgradeCode='C54B7D5D-0E66-43E8-A770-C9750693F057' >>> Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme >>> Ltd.'> >>> >>> <Package Id='*' Keywords='Installer' Description="Tort 1.0 >>> Installer" Comments='Tort Ltd.' Manufacturer='ESI Ltd.' >>> InstallerVersion='100' Languages='1033' Compressed='yes' >>> SummaryCodepage='1252' /> >>> >>> <Media Id='1' Cabinet='Tort.cab' EmbedCab='yes' DiskPrompt="CD-ROM >>> #1" /> >>> <Property Id='DiskPrompt' Value="Tort Demo Installation [1]" /> >>> >>> <Directory Id='TARGETDIR' Name='SourceDir'> >>> <Directory Id='DesktopFolder' Name='PFiles'> >>> <Directory Id='TORTDEMO' Name='Tort Demo'> >>> <Component Id="CmpTrunkDB" >>> Guid="9D5FEECE-74FE-45A2-BD34-41562EC8ED16"> >>> <RemoveFolder Id='TORTDEMO' On='uninstall' /> >>> <RegistryValue Root='HKCU' >>> Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' >>> KeyPath='yes' /> >>> </Component> >>> </Directory> >>> </Directory> >>> </Directory> >>> >>> <Feature Id='Complete' Level='1'> >>> <ComponentRef Id='TORTDEMO' /> >>> <ComponentRef Id='cmp159DEBB341761ACFD08D530D4AB638B2'/> >>> </Feature> >>> >>> </Product> >>> >>> <!--<Fragment> >>> <DirectoryRef Id="dir69CDC966F9D8B6EA694F96E169B0FBFF"> >>> </DirectoryRef> >>> </Fragment>--> >>> >>> </Wix> >>> >>> I have executed the candle as below: >>> *candle TortEngineDemo.wxs trunkdb.wxs* -- this generates the WIXOBJ >>> files. Then i execute *light -out TrunkDBDemo.msi TortEngineDemo.wixobj >>> trunkdb.wixobj*. On this i am again getting multiple errors : >>> C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(1119) : error >>> LGHT0267 : >>> Found orphaned Component 'cmp5FAA008684E68756F59591139AA72C60'. If >>> this is a P >>> roduct, every Component must have at least one parent Feature. To >>> include a Com >>> ponent in a Module, you must include it directly as a Component element >>> of the M >>> odule element or indirectly via ComponentRef, ComponentGroup, or >>> ComponentGroupR >>> ef elements. >>> >>> I am sure i am not referring the fragment the right way. Please suggest >>> how i need to refer to the fragment from my installer. I am really stuck >>> and any help would be much appreciable. Let me know if you are on Skype, >>> that would be helpful. >>> >>> Regards, >>> SuvraJyoti >>> >>> >>> >>> >>> >>> >>> Regards, >>> SuvraJyoti >>> >>> On 15-11-2013 19:19, John Ludlow wrote: >>> >>> I think you're getting confused between two separate issues. If you're >>> getting the ICE error, then that would stop the build from successfully >>> completing. You may be using an out of date version of your installer. >>> >>> Because of that, I would suggest that you do the following >>> >>> 1. Resolve the ICE issue. You suppress it so that it doesn't get run, but >>> the better thing to do is usually to solve the error. In this case, that >>> means add a registry entry to the component and mark it as KeyPath=yes. >>> >>> 2. Determine whether your directory structure is getting added to your >>> install. You can do this in a number of ways - using Orca.exe or performing >>> an admin install are two of them. Based on your question, I can't see a >>> reference to anything in the Fragment which contains the harvested >>> directory structure, so I suspect that you need to add a reference to >>> something in there. >>> >>> For example: >>> >>> <Feature Id='Complete' Level='1'> >>> <ComponentRef Id='TORTDEMO' /> >>> <ComponentRef Id='cmpCB46AAB9A4F3EB62F8247A194B4BBB4B' /> >>> </Feature> >>> >>> Once you've dealt with those issues, you may see WiX complain about other >>> issues - for starters, your root DirectoryRef entry in that structure is >>> missing an ID, so the structure won't have a valid parent which means MSI >>> won't know where to put it. >>> >>> My advice would be to concentrate on getting a successful compilation, then >>> work from there. Keep compiling regularly as you work. If you see a >>> compilation failure, stop and deal with it. This makes it much easier to >>> deal with issues as you discover them. >>> >>> Hope that helps >>> >>> >>> On 15 November 2013 11:13, Suvrajyoti Panda <suvrajyo...@contata.co.in> >>> <suvrajyo...@contata.co.in>wrote: >>> >>> >>> Hi, >>> >>> I have a fragment that i have created through Heat. Basically i want to >>> create a db directory that has db files inside it through the installer. >>> It has the structure as below: >>> >>> <?xml version="1.0" encoding="utf-8"?> >>> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" >>> <http://schemas.microsoft.com/wix/2006/wi>> >>> <Fragment> >>> <DirectoryRef Id=""> >>> <Directory Id="" Name="db"> >>> <Component Id="cmpCB46AAB9A4F3EB62F8247A194B4BBB4B" >>> Guid="{DE25A51B-AD43-4C74-8F84-9336AAC18BA0}"> >>> <File Id="fil8B6B2F5720D83AD50A3898087E4DADF1" >>> KeyPath="yes" Source="SourceDir\alarm.db" /> >>> </Component> >>> ...... many components follow here >>> ........ >>> ........ >>> . >>> . >>> . >>> </Directory> >>> </DirectoryRef> >>> </Fragment> >>> </Wix> >>> >>> My main WiX installer file is as below: >>> >>> <?xml version='1.0' encoding='windows-1252'?> >>> <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> >>> <Product Name='Tort Demo 1.0' >>> Id='0A6A060C-20A5-4716-994D-BC728A904F27' >>> UpgradeCode='3F665FE5-D9A9-4C9E-B260-7D54970C99F3' >>> Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme >>> Ltd.'> >>> >>> <Package Id='*' Keywords='Installer' Description="Tort 1.0 >>> Installer" Comments='Tort Ltd.' Manufacturer='ESI Ltd.' >>> InstallerVersion='300' Languages='1033' Compressed='yes' >>> SummaryCodepage='1252' /> >>> >>> <Media Id='1' Cabinet='Tort.cab' EmbedCab='yes' DiskPrompt="CD-ROM >>> #1" /> >>> <Property Id='DiskPrompt' Value="Tort Demo Installation [1]" /> >>> >>> <Directory Id='TARGETDIR' Name='SourceDir'> >>> <Directory Id='PersonalFolder' Name='PFiles'> >>> <Directory Id='TORTDEMO' Name='Tort Demo'> >>> <Component Id="TORTDEMO" >>> Guid="8D286AB1-8C00-4A88-A7EB-C83BB92C480A"> >>> <RemoveFolder Id='TORTDEMO' On='uninstall' /> >>> </Component> >>> </Directory> >>> </Directory> >>> </Directory> >>> >>> <Feature Id='Complete' Level='1'> >>> <ComponentRef Id='TORTDEMO' /> >>> </Feature> >>> >>> </Product> >>> * >>> ** <Fragment>** >>> ** <DirectoryRef Id="TORTDEMO">** >>> ** </DirectoryRef>** >>> ** </Fragment>* >>> >>> </Wix> >>> >>> I have tried to reference as given in the bold, but the directory >>> structure does not get created when i run the .msi installer an i am >>> getting the error C:\Program Files (x86)\WiX Toolset >>> v3.7\bin\TortEngineDemo.wxs(15) : error LGHT0 >>> 204 : ICE38: Component TORTDEMO installs to user profile. It must use a >>> registry >>> key under HKCU as its KeyPath, not a file. >>> >>> Please help.. >>> >>> Regards, >>> Suvra Jyoti >>> >>> On 15-11-2013 16:28, uholeschak wrote: >>> >>> I have two burn bundles (with different UpgradeCodes) >>> that contain the same MsiPackage, but with different versions (different >>> ProductCode). >>> When I install the first burn bundle all is working fine, >>> but when installing the second bundle nothing is happening (the >>> >>> MsiPackage >>> >>> is not installed). >>> Is there a way to force burn to update an existing MsiPackage? >>> >>> >>> >>> >>> -- >>> View this message in context: >>> >>> >>> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/MSI-packages-in-different-burn-bundles-not-updated-tp7590668.html >>> >>> Sent from the wix-users mailing list archive at Nabble.com. >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >>> Free app hosting. Or install the open source package on any LAMP server. >>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! >>> >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >>> >>> _______________________________________________ >>> WiX-users mailing >>> listWiX-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wix-users >>> >>> >>> ------------------------------------------------------------------------------ >>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >>> Free app hosting. Or install the open source package on any LAMP server. >>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and >>> Native!http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> WiX-users mailing >>> listWiX-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wix-users >>> >>> >>> ------------------------------------------------------------------------------ >>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >>> Free app hosting. Or install the open source package on any LAMP server. >>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and >>> Native!http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> WiX-users mailing >>> listWiX-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wix-users >>> >>> >>> >>> >>> >> >> >> >> >> >> > > ------------------------------------------------------------------------------ DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users