Okay, I have a generic/global build file that I think is very clean and
nearly works.  The only limitation I have now is that Nant doesn't
recognize/utilize <foreach> loops within the <webmap> node.

<property name="webmap.file"
          value="${path::combine(work.dir,webmap.name)}"
          readonly="true" />

<target name="debug" depends="update">

  <if test="${not file::exists(webmap.file)}">
    <solution ... />
  </if>

  <if test="${file::exists(webmap.file)>
    <solution ... >
      <webmap>
        <foreach ... property="url,path">
          <map url="${url}" path="${path}" />
        </foreach>
      </webmap>
    </solution>
  </if>

</target>

I am willing (and probably able) to make the changes to Nant itself to
get it to process the <foreach> inside the <webmap>, but I have a few
"philosophical" questions for you all.

Is this a good idea?

Would it be considered generally useful?

Is it likely to be adopted into the project so that I don't have to
integrate the change on every new Nant release?

Can anyone help me out a bit by pointing out where I can find the
existing <foreach> implementation and where I need to modify the
<webmap> processing?

Thanks in advance for your consideration and feedback.

Tony

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Selke,
Anthony
Sent: Tuesday, April 19, 2005 11:22 AM
To: Gary Feldman; nant-users@lists.sourceforge.net
Subject: RE: [Nant-users] Trying to abstract the <webmap> section.
Importance: Low

> Does CI mean "check in " or "continuous integration"?

Sorry ... continuous integration, though I am doing my testing running
Nant directly from the command line.

> NAnt only deals with the if/unless/ifnot control facilities at the 
> task level.

Ouch.  I really hoped to avoid building the file from scratch (hence the
<solution> tag).  What about the <foreach> node?  I have the following:

<target name="debug" depends="update">
  <if test="${webmap.exists}">
    <foreach item="Line" in="webmap.config" delim="|"
property="url,path">
      <echo message="URL = '${url}'" />
      <echo message="PATH = '${path}'" />
    </foreach>
    <solution ... >
      <webmap>
        <foreach item="Line" in="webmap.config" delim="|"
property="url,path">
          <map url="${url}" path="${ccnet.working.directory}\${path}" />
        </foreach>
      </webmap>
    </solution>
  </if>
</target>

The result is this:

debug:
     [echo] URL = 'http://localhost/Project.Web/Project.Web.csproj'
     [echo] PATH = 'Project.Web\Project.Web.csproj'
 [solution] Starting solution build.

BUILD FAILED

Cannot build web project
'http://localhost/Project.Web/Project.Web.csproj'.  Please use <webmap>
to map the given URL to a project-relative path, or specify
enablewebdav="true" on the <solution> task element to use WebDAV.

So the <foreach> is working, but it appears to be ignored within the
<webmap> tag (whereas the <if> node actually threw an error).


-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime
info, new features, or free trial, at:
http://www.businessobjects.com/devxi/728
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users


-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime info,
new features, or free trial, at: http://www.businessobjects.com/devxi/728
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to