I don't know much about how NAnt generates its MSI files, but I do know that you should never ever put multiple DLLs (or EXEs) in a single component.  These should always be tied to separate components, and the DLL./EXE should be the key file.

Secondly, you have set that component to install to the GAC.  I'm not sure exactly how NAnt does this bit, but are you sure that doesn't cause it to not install the file to the normal folder?  That's the only component that has multiple assemblies, and it's the only one that's set up to go to the GAC, so I'm putting my money on one of those two.

Failing that, generate a verbose log file:

  msiexec.exe yourinstall.msi /l*v c:\logfile.log

If you have trouble reading it, try the WILogUtil: http://msdn.microsoft.com/library/default.asp?url="">

Hope that helps

John

On 26/01/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:



I'm having a devilish problem with the MSI task.  The MSI executes without errors, but it fails to create one of the directories specified.

The MSI is intended to deposit files in to three directories on a target machine.

One directory already exists (PIPEDIR).   The other two (ESB and BINDING) are supposed to get created.  All under the same directory.

The MSI gets created just fine.  When I run it on the target machine, the PIPEDIR contents get deposited ok.  The BINDING directory gets created and filled. But the ESB directory does not get created.

The task XML is below.  I also have the install log if that would help diagnose it.

I've been wrestling with this for three days now, and could really use some help.


TIA!


Ron

    <msi output="${msi-file-name}" sourcedir="Release" verbose="true" license="${build.basedir}\ESBlicense.rtf">
      <properties>
        <property name="ProductName" value="Project From Hades" />
        <property name="ProductVersion" value="1.0" />
        <property name="Manufacturer" value="My employer" />
        <property name="ProductCode" value="{A051DBCB-D74B-49B2-9308-7B732CEFA39B}" />
        <property name="UpgradeCode" value="{C8A6DBED-5EBB-46A2-A001-1589CF54C06B}" />
      </properties>
      <directories>
        <directory name="PROG" foldername="Program Files" root="WindowsVolume">
          <directory name="BTS" foldername="Microsoft BizTalk Server 2004">
            <directory name="PIPEDIR" foldername="Pipeline Components" />
            <directory name="ESB" foldername="ESB_ENG" />
            <directory name="BINDING" foldername="ESB Bindings" />
          </directory>
        </directory>
      </directories>
      <components>
        <component name="ESBCore" id="{1F712230-063A-4D25-9B90-A1A68F956B00}" attr="0" directory="ESB" feature="F__DefaultFeature" installassembliestogac="true">
          <key file="CtxSetGeneric.dll" />
          <fileset basedir="${build.basedir}\Release">
            <include name="CtxSetGeneric.dll" />
            <include name="ORG.KP.ESB.ENGINE.HELPERS.DLL" />
            <include name="ORG.KP.ESB.ENGINE.BRE.MAPRESOLUTION.DLL" />
            <include name="ORG.KP.ESB.ENGINE.SCHEMAS.DLL" />
            <include name="org.kp.esb.engine.mapping.dll" />
          </fileset>
        </component>
        <component name="Pipelines" id="{8125A816-1A36-46B7-8A73-DEA100AAF7ED}" attr="0" directory="PIPEDIR" feature="F__AlsoDefault" installassembliestogac="false">
          <key file="org.kp.esb.engine.pipelines.dll" />
          <fileset basedir="${build.basedir}\Release">
            <include name="org.kp.esb.engine.pipelines.dll" />
          </fileset>
        </component>
        <component name="Binding" id="{8445E588-65FF-4FBB-A115-632E43FBE8D1}" attr="0" directory="BINDING" feature="F__Binding" installassembliestogac="false">
          <key file="kp.engine.mapping.policy" />
          <fileset basedir="${build.basedir}\Bindings">
            <include name="*.*" />
          </fileset>
        </component>
      </components>
      <customactions>
        <customaction action="" type="34" source="BINDING" target="DeployBTRules  /ruleSetFile kp.engine.mapping.vocabulary" />
        <customaction action="" type="34" source="BINDING" target="DeployBTRules  /ruleSetFile kp.engine.mapping.policy /ruleSetName kp.engine.mapping" />
      </customactions>
      <features>
        <feature name="F__DefaultFeature" title="Main Core Engine" display="1" typical="true" directory="ESB">
          <description>core files</description>
        </feature>
        <feature name="F__AlsoDefault" title="More Core Engine" display="1" typical="true" directory="PIPEDIR">
          <description>More core files</description>
        </feature>
        <feature name="F__Binding" title="Binding" display="1" typical="true" directory="BINDING">
          <description>Binding engine files</description>
        </feature>
      </features>
    </msi>


Reply via email to