<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>maonet technotes &#187; NAnt</title>
	<atom:link href="http://maonet.wordpress.com/category/nant/feed/" rel="self" type="application/rss+xml" />
	<link>http://maonet.wordpress.com</link>
	<description>IOC(SM):MOC(RM):TDD(NU):SCC(TFS):ORM(L2S):JSL(Jq):CIS(CC)</description>
	<lastBuildDate>Thu, 31 Dec 2009 17:16:53 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='maonet.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/27569a47b055d3d0ff1d52cf3b0ce0d7?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>maonet technotes &#187; NAnt</title>
		<link>http://maonet.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://maonet.wordpress.com/osd.xml" title="maonet technotes" />
		<item>
		<title>Add modificationHistroy to release?</title>
		<link>http://maonet.wordpress.com/2009/10/16/added-modificationhistroy-to-release/</link>
		<comments>http://maonet.wordpress.com/2009/10/16/added-modificationhistroy-to-release/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 21:49:59 +0000</pubDate>
		<dc:creator>Frank Mao</dc:creator>
				<category><![CDATA[NAnt]]></category>
		<category><![CDATA[cruisecontrol]]></category>

		<guid isPermaLink="false">http://maonet.wordpress.com/?p=786</guid>
		<description><![CDATA[I wish we could use JIRA for generating release file in build result. cc.net does have a ModificationHistory publisher, but for some reason, the version CCConfig I have doesn&#8217;t work for this. (Somebody filed the bug already, I did a vote.)
The workaround I&#8217;m using:

Enable ModificationWriterTask in cc.net project publisher, this will generate a file named [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=786&subd=maonet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I wish we could use JIRA for generating release file in build result. cc.net does have a ModificationHistory publisher, but for some reason, the version CCConfig I have doesn&#8217;t work for this. (Somebody filed the bug already, I did a vote.)</p>
<p>The workaround I&#8217;m using:</p>
<ol>
<li>Enable ModificationWriterTask in cc.net project publisher, this will generate a file named modifications.xml in artifact folder, which only contains the changes since last build.</li>
<li>Create a NAnt task to merge modifications info into a modificationHistory.xml file. (idea from <a href="http://weblogs.asp.net/bsimser/archive/2008/01/03/appending-nodes-in-xml-files-with-xmlpeek-and-xmlpoke-using-nant.aspx">here</a>)</li>
<li>Create another NAnt task to transform the xml into a text file.</li>
</ol>
<pre class="brush: xml;">
	&lt;target name=&quot;publish.mod.history&quot; depends=&quot;merge.mod.history&quot; &gt;
		&lt;style style=&quot;${build.dir}\modifications.xsl&quot;
			in=&quot;${CCNetArtifactDirectory}\modificationHistory.xml&quot;
			out=&quot;${CCNetArtifactDirectory}\${application.version}\modifications.txt&quot;&gt;
	    &lt;parameters&gt;
	        &lt;parameter name=&quot;reportType&quot; namespaceuri=&quot;&quot; value=&quot;Plain&quot; /&gt;
	    &lt;/parameters&gt;
		&lt;/style&gt;
	&lt;/target&gt;

	&lt;target name=&quot;merge.mod.history&quot; description=&quot;add the new mod list to an existing xml file&quot;&gt;
		&lt;property name=&quot;xmlnodes&quot; value=&quot;&quot;/&gt;
		&lt;xmlpeek xpath=&quot;//ArrayOfModification&quot; file=&quot;${CCNetArtifactDirectory}\modificationHistory.xml&quot; property=&quot;xmlnodes&quot;&gt;&lt;/xmlpeek&gt;
		&lt;property name=&quot;newnode&quot; value=&quot;&quot; /&gt;
		&lt;xmlpeek xpath=&quot;//ArrayOfModification&quot; file=&quot;${CCNetArtifactDirectory}\modifications.xml&quot; property=&quot;newnode&quot;&gt;&lt;/xmlpeek&gt;
		&lt;property name=&quot;xmlnodes&quot; value=&quot;${newnode}${xmlnodes}&quot; /&gt;
		&lt;xmlpoke file=&quot;${CCNetArtifactDirectory}\modificationHistory.xml&quot; xpath=&quot;//ArrayOfModification&quot; value=&quot;${xmlnodes}&quot; /&gt;
	&lt;/target&gt;
</pre>
<p>Modifications.xsl:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot;?&gt;&lt;!-- DWXMLSource=&quot;modificationHistory0.xml&quot; --&gt;
&lt;xsl:stylesheet
    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
    xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;

     version=&quot;1.0&quot;&gt;

    &lt;xsl:output method=&quot;text&quot;/&gt;

    &lt;xsl:variable name=&quot;modification.list&quot; select=&quot;ArrayOfModification/Modification&quot;/&gt;

    &lt;xsl:template match=&quot;/&quot;&gt;
Modifications since last build (&lt;xsl:value-of select=&quot;count($modification.list)&quot;/&gt;)
    &lt;xsl:apply-templates select=&quot;$modification.list&quot;&gt;
        &lt;xsl:sort select=&quot;date&quot; order=&quot;descending&quot; data-type=&quot;text&quot; /&gt;
    &lt;/xsl:apply-templates&gt;
    &lt;/xsl:template&gt;

    &lt;!-- Modifications template --&gt;
    &lt;xsl:template match=&quot;Modification&quot;&gt;
 (Revision:&lt;xsl:value-of select=&quot;ChangeNumber&quot;/&gt;) &lt;xsl:value-of select=&quot;FolderName&quot;/&gt;/&lt;xsl:value-of select=&quot;FileName&quot;/&gt;, &lt;xsl:value-of select=&quot;UserName&quot;/&gt; on &lt;xsl:value-of select='substring(ModifiedTime, 0, 11)'/&gt;, &lt;xsl:value-of select=&quot;Comment&quot;/&gt;
    &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;
</pre>
<p>Result:</p>
<blockquote><p>Modifications since last build (14)</p>
<p>(Revision:15) /trunk/build/modificationHistory0.xml, FMao on 2009-10-15,<br />
(Revision:15) /trunk/build/modifications.xsl, FMao on 2009-10-15,<br />
(Revision:12) /trunk/build/default.build, FMao on 2009-10-15, added new task to merge mod hist and transform xml<br />
(Revision:12) /trunk/pbunit_demo.pbw, FMao on 2009-10-15, added new task to merge mod hist and transform xml</p></blockquote>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maonet.wordpress.com/786/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maonet.wordpress.com/786/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maonet.wordpress.com/786/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maonet.wordpress.com/786/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maonet.wordpress.com/786/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maonet.wordpress.com/786/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maonet.wordpress.com/786/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maonet.wordpress.com/786/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maonet.wordpress.com/786/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maonet.wordpress.com/786/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=786&subd=maonet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maonet.wordpress.com/2009/10/16/added-modificationhistroy-to-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d41c3a25ca01f1e979e2bc86b8c4ed38?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FMao</media:title>
		</media:content>
	</item>
		<item>
		<title>NAnt includebuild file</title>
		<link>http://maonet.wordpress.com/2009/04/15/nant-includebuild-file/</link>
		<comments>http://maonet.wordpress.com/2009/04/15/nant-includebuild-file/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:10:46 +0000</pubDate>
		<dc:creator>Frank Mao</dc:creator>
				<category><![CDATA[NAnt]]></category>

		<guid isPermaLink="false">http://maonet.wordpress.com/?p=560</guid>
		<description><![CDATA[When using NAnt includebuild file, make sure you have both including and included file have this attributes in project setting, otherwise the include will fail.
&#60;project name=&#8221;your.project&#8221; xmlns=&#8221;http://nant.sf.net/release/0.85/nant.xsd&#8221;&#62;
But why? Magic xml.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=560&subd=maonet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When using NAnt includebuild file, make sure you have both including and included file have this attributes in project setting, otherwise the include will fail.</p>
<blockquote><p>&lt;project name=&#8221;your.project&#8221; xmlns=&#8221;http://nant.sf.net/release/0.85/nant.xsd&#8221;&gt;</p></blockquote>
<p>But why? Magic xml.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maonet.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maonet.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maonet.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maonet.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maonet.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maonet.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maonet.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maonet.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maonet.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maonet.wordpress.com/560/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=560&subd=maonet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maonet.wordpress.com/2009/04/15/nant-includebuild-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d41c3a25ca01f1e979e2bc86b8c4ed38?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FMao</media:title>
		</media:content>
	</item>
		<item>
		<title>Replace file content in NAnt task</title>
		<link>http://maonet.wordpress.com/2008/08/12/replace-file-content-in-nant-task/</link>
		<comments>http://maonet.wordpress.com/2008/08/12/replace-file-content-in-nant-task/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 17:48:42 +0000</pubDate>
		<dc:creator>Frank Mao</dc:creator>
				<category><![CDATA[NAnt]]></category>
		<category><![CDATA[StructureMap]]></category>
		<category><![CDATA[cruisecontrol]]></category>

		<guid isPermaLink="false">http://maonet.wordpress.com/?p=182</guid>
		<description><![CDATA[As JP suggested, I always compile all my layered projects into a huge dll to make NAnt build file eaiser. This solution is perfect until I tried to embeb structuremap config file into cruise control. Because assembly file name changed, I have to find a way to replace the config file content in NAnt.
It was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=182&subd=maonet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As JP suggested, I always compile all my layered projects into a huge dll to make NAnt build file eaiser. This solution is perfect until I tried to embeb structuremap config file into cruise control. Because assembly file name changed, I have to find a way to replace the config file content in NAnt.</p>
<p>It was not easy. NAnt doesn&#8217;t have a replace task!</p>
<p>I don&#8217;t want hack into NAnt source to re-build my own version. It seems Jay Flowers, the creator of CI Factory has <a href="http://jayflowers.com/joomla/index.php?option=com_content&amp;task=view&amp;id=24&amp;Itemid=51">his modified version of NAnt</a> which has replace task in it, but, no document to direct me how to use it.</p>
<p>OK, I have to call Ant task in NAnt build file then.</p>
<blockquote><p>[NAnt build file]<br />
&lt;exec program=&#8221;c:\ant\bin\ant.bat&#8221; basedir=&#8221;${base.dir} &#8220;&gt;<br />
&lt;arg value=&#8221;-Dcurrentproject.lib=${currentproject.lib}&#8221; /&gt;<br />
&lt;/exec&gt;</p></blockquote>
<blockquote><p>[Ant file]<br />
&lt;project name=&#8221;config&#8221; default=&#8221;replace_config&#8221; basedir=&#8221;.&#8221;&gt;</p>
<p>&lt;property name=&#8221;build.dir&#8221; value=&#8221;${basedir}\build&#8221;/&gt;<br />
&lt;property name=&#8221;currentproject.lib&#8221; value=&#8221;undefined&#8221;/&gt;</p>
<p>&lt;target name=&#8221;replace_config&#8221;&gt;<br />
&lt;replace file=&#8221;${build.dir}\StructureMap.config&#8221;&gt;<br />
&lt;replacefilter token=&#8221;,mybizlayer&#8221; value=&#8221;,${currentproject.lib}&#8221;  /&gt;<br />
&lt;replacefilter token=&#8221;,mydatalayer&#8221; value=&#8221;,${currentproject.lib}&#8221;  /&gt;</p>
<p>&lt;/replace&gt;</p>
<p>&lt;/target&gt;<br />
&lt;/project&gt;</p></blockquote>
<blockquote></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/maonet.wordpress.com/182/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/maonet.wordpress.com/182/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maonet.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maonet.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maonet.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maonet.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maonet.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maonet.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maonet.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maonet.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maonet.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maonet.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=182&subd=maonet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maonet.wordpress.com/2008/08/12/replace-file-content-in-nant-task/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d41c3a25ca01f1e979e2bc86b8c4ed38?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FMao</media:title>
		</media:content>
	</item>
		<item>
		<title>Strange NAnt problem</title>
		<link>http://maonet.wordpress.com/2008/02/29/strange-nant-problem/</link>
		<comments>http://maonet.wordpress.com/2008/02/29/strange-nant-problem/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 18:47:34 +0000</pubDate>
		<dc:creator>Frank Mao</dc:creator>
				<category><![CDATA[NAnt]]></category>

		<guid isPermaLink="false">http://maonet.wordpress.com/?p=91</guid>
		<description><![CDATA[When I moved my dotnet project from my workstation to CC.net server (64 bit windows 2003 server), this problem appears:
System.NullReferenceException: Object reference not set to an instance of an object.
at NAnt.Core.FrameworkInfo.get_Version()
There is a solution on Jeffery Palermo&#8217;s blog in which a extra dotnet 3.5 configuration is provided. I didn&#8217;t want to do this at first [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=91&subd=maonet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When I moved my dotnet project from my workstation to CC.net server (64 bit windows 2003 server), this problem appears:</p>
<blockquote><p>System.NullReferenceException: Object reference not set to an instance of an object.<br />
at NAnt.Core.FrameworkInfo.get_Version()</p></blockquote>
<p>There is a solution on Jeffery Palermo&#8217;s blog in which a extra dotnet 3.5 configuration is provided. I didn&#8217;t want to do this at first because the version I have (.86 beta1) already include this part. I decided to change my xml file little by little with no good, finally, I copied the whole piece of <a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/12/05/171380.aspx"> Jefferyof  xml about .net 35 config</a> to NAnt.exe.config, the problem was fixed then.</p>
<p>There must be something different in the assembly list, for 64 bit server maybe?</p>
<blockquote></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/maonet.wordpress.com/91/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/maonet.wordpress.com/91/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/maonet.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/maonet.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/maonet.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/maonet.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/maonet.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/maonet.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/maonet.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/maonet.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/maonet.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/maonet.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maonet.wordpress.com&blog=431779&post=91&subd=maonet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://maonet.wordpress.com/2008/02/29/strange-nant-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d41c3a25ca01f1e979e2bc86b8c4ed38?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FMao</media:title>
		</media:content>
	</item>
	</channel>
</rss>