Try running the build in debug mode (NAnt.exe -debug), and send me the
resulting output.
 
Gert

  _____  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: dinsdag 18 maart 2008 9:50
To: nant-users@lists.sourceforge.net
Subject: Re: [NAnt-users] msi task - 'cabarc' failed to start


 

Does anyone else have any ideas? 

I've got verbose=true switched on and I've tried setting the path to cabarc
and mergemod in the Path system variable on my machine (as opposed to
setting it in NAnt) but I'm still getting the same error. 

My NAnt script resides in C:/code/Project/trunk, which is where I'm running
it from (ie I open a command prompt and then navigate to that folder and run
NAnt). I would assume my working directory is the directory I run NAnt from.


Does anyone have any ideas as to why cabarc is trying to find this file ->
'C:\Documents and Settings\user\Local Settings\Temp\tm
p177B.tmp'? 

In case it's of any use, here's a copy of my msi task:

 

    <msi sourcedir="${build.current.dir}" output="${msi.file}"
verbose="true">
      <properties>
        <property name="ProductName" value="${project::get-name()}" />
        <property name="ProductVersion" value="${product.version}" />
        <property name="Manufacturer" value="${manufacturer}" />
        <property name="ProductCode" value="{}" />
        <property name="UpgradeCode" value="{}" />
      </properties>

      <directories>
        <directory name="D__Company" foldername="Company"
root="ProgramFilesFolder">
          <directory name="D__Product" foldername="Product">
            <directory name="D__Resources" foldername="Resources">
              <directory name="D__Icons" foldername="Icons"/>
              <directory name="D__Xml" foldername="Xml"/>
            </directory>
          </directory>
        </directory>
      </directories>      
      
      <components>
         <!-- TODO: Create components for all files to be included in
Product release -->
        <component name="C__Main" directory="D__Product"
feature="F__Product" id="{}" attr="2" >
          <key file="Product.exe" />
          <fileset basedir="${build.current.dir}">
            <include name="Product.exe" />
          </fileset>
        </component>
        <component name="C__DAL" directory="D__Product" feature="F__Product"
id="{}" attr="2">
          <key file="DAL.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="DAL.dll"/>
          </fileset>
        </component>
        <component name="C__CustomValidation" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="CustomValidation.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="CustomValidation.dll"/>
          </fileset>
        </component>
        <component name="C__OracleDataProvider" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="Oracle.DataAccess.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="Oracle.DataAccess.dll"/>
          </fileset>
        </component>
        <component name="C__ThirdParty1" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="ThirdParty1.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="ThirdParty1.dll"/>
          </fileset>
        </component>
        <component name="C__ThirdParty2" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="ThirdParty2.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="ThirdParty2.dll"/>
          </fileset>
        </component>
        <component name="C__ThirdParty3" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="ThirdParty31.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="ThirdParty31.dll"/>
            <include name="ThirdParty32.dll"/>
          </fileset>
        </component>
        <component name="C__ThirdParty4" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="ThirdParty4.dll"/>
          <fileset basedir="${build.current.dir}">
            <include name="ThirdParty4.dll"/>
          </fileset>
        </component>
        <component name="C__ReleaseNotes" directory="TARGETDIR"
feature="F__Product" id="{}" attr="2">
          <key file="${releasenotes.std.file}"/>
          <fileset basedir="${build.current.dir}">
            <include name="${releasenotes.std.file}"/>
            <include name="${releasenotes.tech.file}"/>
          </fileset>
        </component>
        <component name="C__DBConfiguration" directory="D__Product"
feature="F__Product" id="{}" attr="2">
          <key file="DBConfiguration.xml"/>
          <fileset basedir="${build.current.dir}">
            <include name="DBConfiguration.xml"/>
          </fileset>
        </component>
        <component name="C__XmlConfigFiles" directory="D__Resources"
feature="F__Product" id="{}" attr="2">
          <key file="UserOptions.xml"/>
          <fileset basedir="${build.current.dir}\${resources.dir}">
            <include name="UserOptions.xml"/>
            <include name="UserOptions.xml.default"/>
            <include name="configuration1.xml"/>
            <include name="configuration2.xml"/>
            <include name="configuration3.xml"/>
            <include name="restore.bat"/>
          </fileset>
        </component>
        <component name="C__MoreXmlConfigFiles" directory="D__Xml"
feature="F__Product" id="{}" attr="2">
          <key file="xmlConfig1.xml"/>
          <fileset
basedir="${build.current.dir}\${resources.dir}\${xml.dir}">
            <include name="xmlConfig1.xml"/>
            <include name="xmlConfig2.xml"/>
            <include name="xmlConfig3.xml"/>
            <include name="xmlConfig4.xml"/>
          </fileset>
        </component>
        <component name="C__Icons" directory="D__Icons" feature="F__Product"
id="{}" attr="2">
          <key file="icon1.ico"/>
          <fileset
basedir="${build.current.dir}\${resources.dir}\${icons.dir}">
            <include name="icon1.ico"/>
            <include name="icon2.ico"/>
          </fileset>
        </component>
      </components>
      
      <!--<launchconditions>
        <launchcondition name="CheckFramework"
condition="MsiNetAssemblySupport">
          <description>This application requires the Microsoft .NET
framework.  Please install the framework first, then re-run this
install.</description>
        </launchcondition>
      </launchconditions>-->
      
      <icons>
        <icon name="icon1" value="${resources.icons.dir}\icon1.ico"/>
        <icon name="icon2" value="${resources.icons.dir}\icon2.ico"/>
      </icons>
      
      <shortcuts>
         <!--Desktop shortcuts--> 
        <shortcut name="SC__DT_Product" directory="DesktopFolder"
filename="Product.exe" component="C__Product"
target="[$C__Product]\Product.exe" icon="icon2" iconindex="0" showcmd="3" >
          <description>${project::get-name()}
${product.version}</description>
        </shortcut>
         <!--Program Menu shortcuts--> 
        <shortcut name="SC__PM_Product" directory="ProgramMenuFolder"
filename="Product.exe" component="C__Product"
target="[$C__Product]\Product.exe" icon="icon2" iconindex="0" showcmd="3">
          <description>${project::get-name()}
${product.version}</description>
        </shortcut>
        <shortcut name="SC__PM_ReleaseNotes" directory="ProgramMenuFolder"
filename="${releasenotes.std.file}" component="C__ProductReleaseNotes"
target="[$C__ProductReleaseNotes]\${releasenotes.std.file}">
          <description>${project::get-name()} ${product.version} Release
Notes</description>
        </shortcut>
        <shortcut name="SC__PM_ReleaseNotesTech"
directory="ProgramMenuFolder" filename="${releasenotes.tech.file}"
component="C__ProductReleaseNotes"
target="[$C__ProductReleaseNotes]\${releasenotes.tech.file}">
          <description>${project::get-name()} ${product.version} Technical
Release Notes</description>
        </shortcut>
      </shortcuts>

      <features>
        <feature name="F__Product" title="Product" display="1"
typical="true" directory="TARGETDIR">
          <description>Product ${product.version}</description>
        </feature>
      </features>

    </msi>

 

 

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: 29 February 2008 13:08
To: nant-users@lists.sourceforge.net
Subject: [NAnt-users] msi task - 'cabarc' failed to start

 

Hi all,

I'm new to NAnt and I'm trying to set up our project for automated builds
but am having no success. I'm currently trying to use the msi task to build
the msi for our project but it keeps failing with the following message:

 

      [msi] Compressing Files...
                 [exec] Starting 'cabarc (-r N
C:\code\PROJECT~3\trunk\builds\lat
est\Project.cab *)' in 'C:\Documents and Settings\user\Local
Settings\Temp\tm
p177B.tmp'

Failure:


BUILD FAILED

C:\code\Project-SVN\trunk\default.build(317,6):
Unable to build Installer database 'Deploy\Project.msi'.
    C:\code\Project-SVN\trunk\default.build(317,6):
    Error creating cab file.
        'cabarc' failed to start.
            The system cannot find the file specified

I've added cabarc and mergemodule to the path using the following code: 

 

<!-- Retrieve the path to visual studio from the registry -->

<readregistry property="visualstudio.dir" key="SOFTWARE\ Microsoft
\VisualStudio\8.0\InstallDir"

hive="LocalMachine" />

<echo>Visual Studio path: ${visualstudio.dir}</echo>

<property name="cabarc.dir" value="${string::replace(visualstudio.dir,
'IDE\', 'Tools\Bin\CabArc.exe')}"/>

<property name="mergemod.dir" value="C:\Program Files\Common Files\
Microsoft Shared\MSI Tools\mergemod.dll"/>

<setenv name="PATH" path ="${cabarc.dir};${mergemod.dir};%PATH%"/>

<echo>Path: ${environment::get-variable('PATH')}</echo>

 

The echo task shows the paths to cabarc and mergemod have been added to the
Path environment variable so it should be able to find them. A friend
suggested that maybe spaces in the path are causing the problem but I don't
know which path in particular they were referring to. From what I've seen,
the fix for that issue should be in the version of NAnt I'm using (0.85)
anyway though. 

Does anyone have any other ideas??

FYI - it's a C# Winforms project using .NET 2.0.  We want to be able to
remove visual studio from the build machine in the future but right now I'm
just trying to get a build that works. Any example build files would be
gratefully accepted! Most of the good examples I've seen have been for Web
projects :(

Thanks,

K.

 


  _____  

Get the name you always wanted with the new y7mail email address
<http://au.rd.yahoo.com/mail/taglines/au/y7mail/default/*http://au.yahoo.com
/y7mail/?p1=ni&p2=general&p3=tagline&p4=other> . 
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to