views:

928

answers:

4

Can anyone please provide me a sample build file demostrating the use of the task of nant-contrib for creating an installer of a web application project.

+1  A: 

I have been using Visual Studio Setup projects for creating MSI for Web Apps and it was quick good and easy.

Why not giving it a try?

essamSALAH
The reason i want to use nant-contrib is because i want to integrate it with the existing nant script used for building the project.
renegadeMind
+3  A: 

This one :)

<?xml version="1.0"?> 
<project name="Scanner" xmlns="http://nant.sf.net/release/0.85/nant.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nant.sf.net/release/0.85/nant.xsd http://ilqhfaatc1ws628/nant.xsd"&gt; 


<!-- Nant command line: 
c:\nant\nant   -debug+ /f:"D:\LaptopServiceTools\ShortFilenameFailure.build.xml" -v+ create.msi 
--> 
<target name="create.msi"> 

<setenv> 
  <!--Set path to CabArc.exe.--> 
  <variable name="PATH" path="c:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\;%PATH%" /> 
</setenv> 

<msi sourcedir="c:\" output="c:\test.msi"> 
  <properties> 
    <property name="ProductName" value="nAntTest" /> 
    <property name="ProductVersion" value="2.5.1.0002" /> 
    <property name="Manufacturer" value="Test" /> 
    <property name="ProductCode" value="{F86BC501-47EB-4A14-BB01-2CC2CB8D1232}"/> 
    <property name="UpgradeCode" value="{B095E2D1-B9D1-412B-8B1D-A914E8876DD5}"/> 
    <property name="TARGETDIR" value="c:\"/> 

  </properties> 

  <directories> 
      <directory name="USR" foldername="usr12" root="TARGETDIR"> 
        <directory name="DIAMONDROOT" foldername="diamond.root"> 
          <directory name="BIN" foldername="bin"/> 
          <directory name="CCFG" foldername="comcal_cfg"/> 
          <directory name="CFG" foldername="cfg"> 
            <directory name ="APPDEFAULTS" foldername="app-defaults"/> 
          </directory> 
        </directory> 
        <directory name="SERVICEROOT" foldername="service.root"> 
          <directory name="RELI" foldername="reli"/> 
        </directory> 
        <directory name="DIAMONDDATA" foldername="diamond.data"> 
          <directory name="PHYSICSLOG" foldername="Physics_log"/> 
        </directory> 
      </directory> 
    </directories> 

  <components> 
    <component name="DiamondRootBinFiles" id="{9904C798-B9F7-450D-902A-1C92D7008014}" attr="2" directory="BIN" feature="FilesFeature" keepsubdirs="true"> 
      <key file="cmd.exe"/> 
      <fileset basedir="c:\Windows\system32"> 
        <include name="cmd.exe" /> 
      </fileset> 
    </component> 
  </components> 

  <features> 
    <feature name="FilesFeature" title="Scanner" display="1" typical="true" directory="C__DRIVE"> 
      <description>Log viewer support files Files</description> 
    </feature> 
  </features> 
</msi> 
</target> 
</project>
Damien Carol
Thanks a ton Damien!
renegadeMind
You're welcome !
Damien Carol
A: 

Hi, I used the script above but I am getting some errors. I appreciate if you can suggest some solutions. I got following error

Invalid element <msi>. Unknown task or datatype.: NAnt.Core.BuildException: C:\Sumesh\Testing\WindowsTest\WindowsTest\Form1.build. xml(31,6): Invalid element <msi>. Unknown task or datatype. at NAnt.Core.Target.Execute() at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies) at NAnt.Core.Project.Execute() at NAnt.Core.Project.Run()

Total time: 0 seconds.

Sumesh
+1  A: 

You may have forgotten to put your NAntContrib bin files into the NAnt bin folder.

Steve