Hi John/All,
I have used the below commands:
heat dir "D:\Project\ESI\Code\trunk\db" -cg trunkdb -gg -sfrag -dr
TORTDEMO -out trunkdb.wxs
candle TortEngineDemo.wxs trunkdb.wxs
light -b "D:\Project\ESI\Code\trunk\db" -out TrunkDBDemo.msi
TortEngineDemo.wixobj trunkdb.wixobj
This does create the TrunkDBDemo.msi and when i run it it also creates
the "Tort Demo" folder on the desktop and the db directory in which i
can find all the files that were there in the source directory. The
required registry entry is also created.
The change i have done is added the part /-b
"D:\Project\ESI\Code\trunk\db" /to the Light command/.
///
But the Light does throw up some many errors such as :
C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(921) : error
LGHT0204 :
ICE38: Component cmp159DEBB341761ACFD08D530D4AB638B2 installs to user
profile. It must use a registry key under HKCU as its KeyPath, not a file.
In the trunkdb.wxs file i have the like below(files are attached)
<Component Id="cmp159DEBB341761ACFD08D530D4AB638B2"
Guid="{AA11F234-AF77-4F2C-B4A2-355A25C71234}">
<File Id="fil13F4C3BF2526AB7CCACA852D90DAA880"
KeyPath="yes" Source="SourceDir\alarm.db"/>
Do i need to change this file to registry key when generating this file
from heat? Please suggest as to what the error could be for?
Regards,
Suvra Jyoti
On 18-11-2013 21:31, John Ludlow wrote:
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
<mailto: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 <mailto: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>
<mailto:suvrajyo...@contata.co.in>
To: John Ludlow <john.ludlow...@gmail.com>
<mailto: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>
<mailto:suvrajyo...@contata.co.in>
To: John Ludlow <john.ludlow...@gmail.com>
<mailto:john.ludlow...@gmail.com>
CC: General discussion about the WiX toolset.
<wix-users@lists.sourceforge.net>
<mailto: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
<mailto: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>
<mailto:suvrajyo...@contata.co.in>
To: General discussion about the WiX toolset.
<wix-users@lists.sourceforge.net>
<mailto:wix-users@lists.sourceforge.net>,
john.ludlow...@gmail.com <mailto: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>
<mailto: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 list
WiX-users@lists.sourceforge.net
<mailto:WiX-users@lists.sourceforge.net>
https://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
<mailto:WiX-users@lists.sourceforge.net>
https://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
<mailto:WiX-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing
conversations that shape the rapidly evolving mobile landscape. Sign up now.
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users