Hi Sandeep, You might try using xslt (NAnt task Style) to turn your Deployment.xml file into a Deployment.build file then call the appropriate targets depending on the environment to which you are deploying. I think this would be easier than a C# program.
Regards Craig Ducharme -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Thursday, May 05, 2005 8:10 PM To: nant-users@lists.sourceforge.net Subject: Nant-users digest, Vol 1 #1445 - 5 msgs Message: 4 Date: Thu, 5 May 2005 16:04:31 -0700 From: "Sandeep" <[EMAIL PROTECTED]> To: <nant-users@lists.sourceforge.net> Subject: [Nant-users] NAnt script and Xml command file integration This is a multi-part message in MIME format. ------_=_NextPart_001_01C551C6.CBC83AD7 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, =20 I need to deploy my application to various environments using a central build server. I have created sample xml that list the files/folders to be copied in each environment. =20 I want to call this XML file though NAnt and use Nant script to run copy task based on the folders specific in xml. I am using server aliases which are also defined in the same xml.=20 =20 Has anyone tried this approach before...what is the best scripting approach for this type of requirement? I am planning to write a C# function in NAnt script to read the xml and then use query using XPath. The first problem I see is how do run all the of copy commands. I looked into <foreach> task but it does not fit here. I need something like for loop where I can specify the number of iterations (I can read the number of copy commands using XPath). =20 Deployment.xml: =20 <?xml version=3D"1.0" encoding=3D"utf-8"?> <deployment> <environments> <environment name=3D"dev"> <servers> <server alias=3D"AppServer" machine=3D"abcdev" /> <server alias=3D"WebServer" machine=3D"xyzdev" /> </servers> </environment> <environment name=3D"qa"> <servers> <server alias=3D"AppServer" machine=3D"abcqa" /> <server alias=3D"WebServer" machine=3D"xyzqa" /> </servers> </environment> <environment name=3D"prod"> <servers> <server alias=3D"AppServer" machine=3D"abcprod" /> <server alias=3D"WebServer" machine=3D"xyzprod" /> </servers> </environment> </environments> <copycommands> <copy stopservice=3D"AbcProcessing"> <source>WindowsApp\AbcService\bin\release</source> <destination machinealias=3D"AppServer">AbcService</destination> </copy> <copy> <source>WebApp\AbcWeb</source> <destination machinealias=3D"WebServer">Inetpub\AbcWeb</destination> </copy> </copycommands> </deployment> =20 I have this simple xml for project teams to specify the copy commands and then I want to put all the complexities in a common NAnt script. =20 Thanks in advance, Sandeep ------_=_NextPart_001_01C551C6.CBC83AD7 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" = xmlns=3D"http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3DContent-Type content=3D"text/html; = charset=3Dus-ascii"> <meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)"> <o:SmartTagType = namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags" name=3D"PersonName" downloadurl=3D"http://www.microsoft.com"/> <!--[if !mso]> <style> st1\:*{behavior:url(#default#ieooui) } </style> <![endif]--> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:Arial; color:windowtext;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} --> </style> </head> <body lang=3DEN-US link=3Dblue vlink=3Dpurple> <div class=3DSection1> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Hi,<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>I need to deploy my application to various = environments using a central build server. I have created sample xml that list the = files/folders to be copied in each environment.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>I want to call this XML file though NAnt and use Nant = script to run copy task based on the folders specific in xml. I am using server aliases which are also defined in the same xml. = <o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Has anyone tried this approach before…what is = the best scripting approach for this type of requirement? I am planning to write = a C# function in NAnt script to read the xml and then use query using XPath. = The first problem I see is how do run all the of copy commands. I looked = into <foreach> task but it does not fit here. I need something like for loop where I = can specify the number of iterations (I can read the number of copy commands = using XPath).<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Deployment.xml:<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><?xml version=3D"1.0" encoding=3D"utf-8"?><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><deployment><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <environments><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <environment name=3D"dev"><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <servers><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <server alias=3D"AppServer" machine=3D"abcdev" = /><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <server alias=3D"WebServer" = machine=3D"xyzdev" /><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= </servers><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> </environment><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <environment name=3D"qa"><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <servers><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <server alias=3D"AppServer" machine=3D"abcqa" = /><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <server alias=3D"WebServer" machine=3D"xyzqa" = /><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= </servers><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> </environment><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <environment name=3D"prod"><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <servers><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <server alias=3D"AppServer" machine=3D"abcprod" = /><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <server alias=3D"WebServer" machine=3D"xyzprod" = /><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= </servers><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> </environment><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = </environments><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <copycommands><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> <copy stopservice=3D"AbcProcessing"><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <source>WindowsApp\AbcService\bin\release</source><o:p></o:p >= </span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <destinat i= on machinealias=3D"AppServer">AbcService</destination><o := p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = </copy><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = <copy><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <source>WebApp\AbcWeb</source><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>   ;= <destination machinealias=3D"WebServer">Inetpub\AbcWeb</destination&g t= ;<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = </copy><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = </copycommands><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'></deployment><o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>I have this simple xml for project teams to specify = the copy commands and then I want to put all the complexities in a common NAnt = script.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Thanks in advance,<o:p></o:p></span></font></p> <p class=3DMsoNormal><st1:PersonName w:st=3D"on"><font size=3D2 = face=3DArial><span = style=3D'font-size:10.0pt;font-family:Arial'>Sandeep</span></font></st1: P= ersonName><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt;font-family:Arial'><o:p></o:p></span></font></ p= > </div> </body> </html> ------_=_NextPart_001_01C551C6.CBC83AD7-- --__--__-- _______________________________________________ Nant-users mailing list Nant-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users End of Nant-users Digest ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r _______________________________________________ Nant-users mailing list Nant-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users