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

Reply via email to